Quando você usa .
para executar um script de shell, ele é executado no shell atual, em vez de iniciar um novo shell. Digite bash test.sh
para obter o comportamento desejado.
Estou usando o CentOS 5.4. Eu criei um script bash que faz alguma verificação antes de executar qualquer comando. Se a verificação falhar, será simplesmente exit 0
. O problema que estou tendo é que em nosso servidor, o script sairá da sessão su
ou ssh
quando o exit 0
for chamado.
#!/bin/bash
# check if directory has contents and exit if none
if [ -z "'ls /ebs_raid/import/*.txt 2>/dev/null'" ]; then
echo "ok"
exit 0
fi
aqui está a saída:
[root@ip-10-251-86-31 ebs_raid]# . test.sh
ok
[russ@ip-10-251-86-31 ebs_raid]$
como você pode ver, eu fui removido da minha sessão do sudo, se eu não estivesse na sessão do sudo, ele teria me desconectado da minha sessão do ssh. Não tenho certeza do que estou fazendo de errado aqui ou por onde começar.