У меня есть сценарий оболочки, над которым я работаю, который использует pssh для получения идентификатора пользователя на удаленном сервере:
for USER in $(cat users.txt); do
runuser -l mike -c 'pssh -H server.mike.com -o /home/mike/output id -u $USER'
cat /home/mike/output/server.mike.com
Файл users.txt содержит одну строку
mikeghen
Когда я запускаю свой скрипт, я получаю сообщение об ошибке:
[1] 14:23:15 [FAILURE] server.mike.com Exited with error code 1\
Но когда я запускаю команду:
runuser -l mike -c 'pssh -H server.mike.com -o /home/mike/output id -u mikeghen'
Я не получаю сообщения об ошибке:
[1] 13:11:53 [SUCCESS] server.mike.com
Я чувствую, что это как-то связано с вопросом, который я задавал раньше, Почему во время pssh отказано в разрешении?, поэтому я безуспешно пытался заключить свою команду в кавычки. Какие-либо предложения?
В ''
кавычки предотвращают интерполяцию переменных. Использовать ""
вместо.
host:~ sven$ echo $USER
sven
host:~ sven$ echo '$USER'
$USER
host:~ sven$ echo "$USER"
sven