paulo1205
(usa Ubuntu)
Enviado em 15/05/2021 - 01:18h
Cada processo tem seu próprio diretório corrente. Quando você invoca um
script colocando apenas o caminho do
script, um processo novo será criado pelo
shell para esse
script, e a mudança de diretório ocorrerá dentro desse processo, sem afetar o
shell que o invocou.
Se você quiser que o
script afete o diretório corrente do próprio
shell, até pode, desde que o
script tenha sido escrito numa linguagem que o
shell entenda (por exemplo, se o seu
shell for o Bash e o
script tiver sido escrito para rodar com Bash). Nesse caso, você deve usar o comando
. (um simples ponto) para interpretar o script como se o seu conteúdo tivesse sido digitado por você mesmo.
/home/fulano/meu_script # executa “meu_script”, localizado no diretório “/home/fulano”, num processo separado.
./meu_script # executa “meu_script”, localizado no diretório corrente (“.”), num processo separado.
. /home/fulano/meu_script # executa “meu_script”, localizado no diretório “/home/fulano”, como se os comandos nele contidos fossem digitados no shell.
. meu_script # executa “meu_script”, localizado no diretório corrente (que, neste caso, não está indicado), como se os comandos nele contidos fossem digitados no shell.
Esse negócio de interpretar comandos como se tivessem sido digitados no
shell tem algumas consequências. Por exemplo, você não deve usar o comando
exit (tipicamente executado em casos de erro) num
script que queira invocar com o comando
., pois, caso o faça, o
shell será terminado.
NOTA: Algumas versões de
shell usam o comando
source como sinônimo ou como alternativa a
., mas geralmente se prefere
. por ser compatível com uma quantidade maior de
shells diferentes ou mais antigos.
... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)