У меня есть эта рабочая команда в терминале (имея в виду, что ssh to localhost предназначен для тестирования - не имеет значения, удаленный сервер или нет):
> ssh nick@127.0.0.1 sh -s -- < "./a.sh" < "./b.sh"
a.sh:
export var="hey world"
b.sh:
echo "$var"
печатает "эй мир", как и ожидалось.
Но когда я добавляю ту же команду в файл скрипта как таковой (скажем, он называется run.sh
):
#!/bin/sh
# ...
ssh nick@127.0.0.1 sh -s -- < "./a.sh" < "./b.sh"
и я выполняю следующим образом:
chmod +x ./run.sh
./run.sh
это не работает - пустая строка печатается. Я проверил другие команды, и они, похоже, не были прочитаны.
В чем дело?
РЕДАКТИРОВАТЬ: я только что разъяснил, я решил проблему сам по себе с тем же ответом пришел Cornholio, но я хочу точно знать, что заставляет его работать через REPL против в файле сценария оболочки