Как отличить интерактивный и неинтерактивный вход в систему от вывода "echo $ -" в AIX? - PullRequest
0 голосов
/ 07 мая 2020

Я делаю это в AIX (kshell)

Когда я echo $- локально получаю результат ism, и когда я запускаю его удаленно ssh test_id@sandbox "echo $-"

$ echo $-
ism

Я запускаю это с удаленного сервера на другой сервер AIX

ssh test_id@sandbox "echo $-"
himBH

Какой из них интерактивный, а какой не интерактивный

Ответы [ 2 ]

1 голос
/ 11 мая 2020

Если «интерактивный» означает, что с подключением связан терминал, я обычно использую этот метод для AIX k sh в моей предыдущей компании:

if tty -s
then
     do-coding-for-sessions-with-terminal
else
     do-nothing
fi
0 голосов
/ 17 мая 2020

Как указано в комментариях, наличие i в переменной $- указывает, что оболочка интерактивна. Чтобы получить ответ от Тима Кеннеди в U&L :

case "$-" in
    *i*)
        interactive=1
        ;;
    *)
        not_interactive=1
        ;;
esac

В приведенном выше коде используется оператор case , чтобы узнать, соответствует ли переменная $- содержит i или нет.

...