Preciso encontrar ajuda para o comando point .
, como em . ./my_script.sh
(quero dizer o primeiro ponto).
Eu já tentei encontrar uma página de manual usando man .
e man \.
. Como posso exibir uma página de manual na qual explica o uso do comando .
?
help .
dot
. Veja a especificação formal em pubs.opengroup.org/onlinepubs/009696699/utilities/dot.html.
é um comando, especificamente um shell embutido. No Bash é equivalente asource
..
é POSIX, não apenas bash. Por exemplo, também está em zsh e ksh.Respostas:
Antes de tudo, você deve invocar
type .
, provavelmente obterá algo como:Builtins são partes do seu shell, eles não têm suas próprias páginas de manual. Alguns deles podem parecer tê-los, por exemplo,
echo
está embutido no Bash, mas provavelmente existe um executável separado, como/bin/echo
no seu sistema e, neste caso,man echo
refere-se ao último . Esses doisecho
s provavelmente não são estritamente equivalentes.Seu shell pode fornecer informações sobre qualquer built-in via
help
built-in; tentehelp help
,help type
e, finalmente:Builtins também podem ser listados na página de manual do seu shell. Por exemplo (no meu Debian), os Bash builtins são cobertos diretamente
man bash
, mas para o Zsh, os buildinsman zsh
me dizem para executarman zshbuiltins
. Em geral, os reservatórios podem ou não explicar seus componentes internos.fonte
.
é um shell embutido e Isso deve ser marcado como resposta porque o OP perguntahow to find help for . in *nix ?
.type .
para demonstrar que alguns comandos são internos do shell.bash-builtins(1)
página de manual, que é de um tamanho mais conveniente.. --help
worksTente usar
man sh
ouman bash
ou a página de manual para qualquer shell que você esteja usando. (Talvezman $SHELL
.)Isso oficialmente não é chamado de comando "point", mas de
source
comando. Procurar a palavrasource
pode ser útil.por exemplo, página de manual do bash (pesquise "cada comando embutido") e você encontrará rapidamente a documentação.
Quanto a explicar o uso, eu posso fazer isso aqui. Vou me referir a isso como o
source
comando, reconhecendo que pode ser abreviado para apenas um período em que você está usando algumas conchas e com algumas conchas que esse comando pode precisar (porque o ponto pode ser reconhecido, mas a palavra inteirasource
pode não ser estar).Se você usar o
source
comando, seu shell lerá cada linha do arquivo de script e tentará executá-lo. Você precisa de permissões de "leitura" no arquivo. (Não importa se você tem permissões de "execução".) Se você modificar uma variável, isso poderá afetar seu shell atual.Se, por outro lado, você apenas tentar executar o arquivo, seu shell solicitará que o sistema operacional cuide dessa solicitação. Isso exigirá permissões de "execução". (Em alguns sistemas, como o OpenBSD, você não precisará de permissões de "leitura" para isso. Em outros sistemas, incluindo muitas variações do Unix, você precisará.) O arquivo pode precisar iniciar com um cabeçalho apropriado (por exemplo,
#!/bin/sh
) para que a operação O sistema reconhece que este é um arquivo de script. O sistema operacional executará uma cópia do shell solicitado e informará esse shell para executar o conteúdo do script. Se o ambiente do shell for alterado (por exemplo, uma variável obtém um novo valor, o diretório de trabalho é alterado (comcd
), um descritor de arquivo é redirecionado (comexec
), etc.), afetará apenas o subconcha que foi chamado para o script e não poderá modificar o ambiente no shell pai que chamou o arquivo de script.fonte
source
no bash. Na especificação POSIX, é chamado "o comando ponto" (e osource
alias não é suportado).man bash
e depois o quê/.
? Não é muito útil./source
seria útil, mas para isso você precisa saber disso.
esource
é a mesma coisa..
e pode sersource
, mas como @CharlesDuffy já mencionado, é sempre.
em qualquer shell compatível com POSIX e só tem o aliassource
em uma concha.Ninguém mais o mencionou, pois costuma ser esquecido.
Sua maior pista viria do comando útil
whatis
.EDITAR:
Algumas pessoas apontaram nos comentários que isso não está em algumas desobstruções - talvez seja um pacote instalável ou tenha ativado de alguma forma - eu o tinha por padrão no gentoo;)
Inclui o maravilhoso what - que diz a você que executável é chamado e whereis que fornece todos os caminhos para um executável que você nomeou e suas páginas de manual (se existirem em vários caminhos).
fonte
whatis .
retornaman: 0703-307 . is not found.
whatis .
não retorna nada no Ubuntu 16.04whatis .
" deu ".: nothing appropriate.
" no OpenBSD, resultou em 47 linhas de saída. Para este exemplo específico (usando "whatis .
" no Gentoo), os resultados podem ser incomumente bons (o que significa que essa técnica geralmente não é tão útil para muitos outros cenários de exemplo).man source
mostrará a explicação que você precisa.O ponto é o mesmo que o comando de origem.
source
executa o script no shell atual em vez de em um subshell (é a maneira usual).O uso
source
das variáveis definidas no script é preservado após a conclusão do script.fonte
man source
funciona? Não no meu Debian, daí a pergunta.source
upstream - é mais provável que algo que o CentOS fez.man source
dá-lheman bash_builtins
, que não explica nada, mas remete parabash(1)
man source
dá-mesource(3tcl)
...type command
e, em seguida, se o comando for um builtinhelp command
é provavelmente a maneira correta ...O
.
é um sinônimo para o shellsource
de comando e assim em festa , sua sintaxe é exibido por ...Ele funciona exatamente como os comandos
include
eimport
em outros idiomas, na medida em que lê o arquivo de destino e o interpreta como se fizesse parte do script atual. Portanto, esse arquivo será executado na íntegra antes dos comandos no restante do script atual.Geralmente, deve estar no início do script atual e é mais frequentemente usado para carregar variáveis e / ou definições de função.
fonte