Bash Script sai su ou ssh Session em vez de Script

1

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.

    
por Russ Bradberry 24.04.2010 / 01:00

1 resposta

3

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.

    
por 24.04.2010 / 01:08