Назад | Перейти на главную страницу

эхо $? не работает при удаленном выполнении

Когда я выполняю команду, как показано ниже, она дает мне ожидаемый результат, но когда я запускаю ту же команду на удаленном сервере, она всегда дает мне echo $? так как 0.

locally
# <some command>
# echo $?

Remotely
# ssh server " <some command >; echo $? "

Теперь при удаленном исполнении всегда получаю 0 так как echo $? вывод.

В $? оценивается перед отправкой команды на удаленный компьютер. Фактически вы отправляете команду echo 0. Пытаться

ssh server ' <some command >; echo $? '

Как указывает Майкл Хэмптон, одинарные кавычки предотвращают оценку переменных и т. Д. Перед их отправкой удаленной команде, в то время как двойные кавычки позволяют это.