Проблемы с передачей команд другому скрипту через ssh

Если ваш /etc/resolv.conf автоматически создается NetworkManager, он будет перезаписан при многих сетевых событиях, таких как DHCP-запросы. Это делается пакетом resolvconf. См. man resolvconf (файлы заголовка и хвоста) для постоянного изменения файла resolv.conf.

1
27.12.2017, 20:49
1 ответ

Вы получаете ошибку [: =: ожидаемый унарный операториз-за того, что команда who am iслева $(who am i | ...)не возвращает никакого текста, поэтому такие поля/переменные/и т. д. всегда следует указывать. в кавычках.

Причина, по которой who am iне возвращает текст, заключается в том, что он предоставляет вам информацию о терминале (которая существует только в том случае, если вы запускаете ее «вручную»). К сожалению, ssh не запускает «настоящий/полный» сеанс терминала, если вы запускаете команду (так называемый неинтерактивный сеанс). Вы должны попробовать заменить его, например. $USER, что даже более эффективно (доступ к переменным намного быстрее, чем запуск новой программы):

if [ "$USER" = "some_user" ]; then

В качестве обходного пути вы можете запустить его с помощью ssh -t