Se você iniciar um script com uma instrução exit
, será necessário iniciá-lo como filho de seu filho atual.
Se você iniciá-lo dentro do shell atual de iniciado com sua sessão de terminal (usando . ./<scriptname>
any exit
fechará o shell principal, aquele iniciado ao longo de sua sessão de terminal.
Se você tivesse lançado seu script como bash ./<scriptname>
(ou qualquer outro shell em vez de bash ), então exit
teria parado seu shell filho e não o usado pelo seu terminal. / p>
Se o seu script tiver permissões executáveis, executá-lo diretamente sem fornecer o nome do shell também o executará em um shell filho.
Usar return
em vez de exit
permitirá que você ainda lance seu script usando . ./<script name>
sem fechar o shell atual. Mas você precisa usar return
para sair de uma função apenas ou de um script de origem (o script foi executado usando a sintaxe . ./<scriptname>
).