1

Я использую CentOS 5.4. Я создал bash-скрипт, который выполняет некоторую проверку перед выполнением любых команд. Если проверка не пройдена, она просто exit 0 . У меня проблема в том, что на нашем сервере скрипт завершит сеанс su или ssh при вызове exit 0 .

#!/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

вот вывод:

[root@ip-10-251-86-31 ebs_raid]# . test.sh 
ok
[russ@ip-10-251-86-31 ebs_raid]$

как вы можете видеть, я был удален из моего сеанса sudo, если бы я не был в сеансе sudo, он бы вывел меня из сеанса ssh. Я не уверен, что я делаю неправильно или с чего начать.

1 ответ1

3

Когда вы используете . для запуска сценария оболочки он выполняется в текущей оболочке, а не запускает новую оболочку. Введите bash test.sh чтобы получить желаемое поведение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .