Я пытаюсь отправить команду bash через SSH, используя ssh -q $REMOTE -x "command"
.
Поскольку у меня есть несколько команд bash, я использую << EOF
.
Проблема в том, что команда readlink возвращает мне пустую строку, когда я присваиваю ее результат переменной. Когда я звоню прямо, это не так.
Вот упрощенная версия моего кода:
ssh -q $REMOTE -x << EOF
LINK="/path/to/my/link" # the link points to /path/to/my/file
readlink $LINK # outputs /path/to/my/file
TEST=$(readlink -f "$LINK")
echo $TEST # outputs an empty string
EOF
В этот момент я поместил тот же код в сценарий оболочки на удаленной машине и попытался вызвать сценарий оболочки:
# local machine
ssh -q $REMOTE -x << EOF
./test-script
EOF
# remote machine "test-script"
LINK="/path/to/my/link" # the link points to /path/to/my/file
readlink $LINK # outputs /path/to/my/file
TEST=$(readlink -f "$LINK")
echo $TEST # outputs /path/to/my/file
Вдруг это работает, когда я вызываю удаленный скрипт, все работает нормально, но почему он не работает через ssh?