Если ваш /etc/resolv.conf автоматически создается NetworkManager, он будет перезаписан при многих сетевых событиях, таких как DHCP-запросы. Это делается пакетом resolvconf. См. man resolvconf
(файлы заголовка и хвоста) для постоянного изменения файла resolv.conf.
Вы получаете ошибку [: =: ожидаемый унарный оператор
из-за того, что команда who am i
слева $(who am i | ...)
не возвращает никакого текста, поэтому такие поля/переменные/и т. д. всегда следует указывать. в кавычках.
Причина, по которой who am i
не возвращает текст, заключается в том, что он предоставляет вам информацию о терминале (которая существует только в том случае, если вы запускаете ее «вручную»). К сожалению, ssh не запускает «настоящий/полный» сеанс терминала, если вы запускаете команду (так называемый неинтерактивный сеанс).
Вы должны попробовать заменить его, например. $USER
, что даже более эффективно (доступ к переменным намного быстрее, чем запуск новой программы):
if [ "$USER" = "some_user" ]; then
В качестве обходного пути вы можете запустить его с помощью ssh -t
, который выделит псевдотерминал, заставив who am i
снова работать.