Когда я выполняю команду, как показано ниже, она дает мне ожидаемый результат, но когда я запускаю ту же команду на удаленном сервере, она всегда дает мне echo $?
так как 0
.
locally
# <some command>
# echo $?
Remotely
# ssh server " <some command >; echo $? "
Теперь при удаленном исполнении всегда получаю 0
так как echo $?
вывод.
В $?
оценивается перед отправкой команды на удаленный компьютер. Фактически вы отправляете команду echo 0
. Пытаться
ssh server ' <some command >; echo $? '
Как указывает Майкл Хэмптон, одинарные кавычки предотвращают оценку переменных и т. Д. Перед их отправкой удаленной команде, в то время как двойные кавычки позволяют это.