Сброс переменной окружения или установка ее на ноль

Вы можете использовать команду wallдля отправки сообщения на все терминалы:

SYNOPSIS
wall [-n] [-t timeout] [-g group] [message | file]

DESCRIPTION
wall displays a message, or the contents of a file, or otherwise its standard input, on the terminals of all currently logged in users.

Вы можете настроить sshdдля использования PAM (, если он доступен в Solaris ), и использоватьpam_exec(https://linux.die.net/man/8/pam_exec)для получения уведомлений каждый раз, когда происходит вход в систему SSH. На этом этапе, вероятно, еще не определено, является ли это сеансом SFTP. Вы можете запустить скрипт в фоновом режиме, который каким-то образом проверяет наличие SFTP.

0
19.02.2020, 12:56
2 ответа

Я бы всегда использовал unset.

Различные формы раскрытия переменной позволяют увидеть, установлена ​​она или нет.

echo ${X:- X is set and not empty}
echo ${X- X is set, maybe empty}
2
28.04.2021, 23:22

Тоньше, чем я помнил. Я никогда раньше не использовал версию :=. Оцениваются слева направо, и назначения вступают в силу немедленно.

Это также может быть интересным назначением :, встроенного -в команду "Ничего не делать".

Paul--) unset X
Paul--) printf '%s\n' "${#X}" "${X:-foo}" \
>                     "${#X}" "${X:=foo}" \
>                     "${#X}" "${X:-why}"
0
foo
0
foo
3
foo
Paul--) 
1
28.04.2021, 23:22

Теги

Похожие вопросы