Вот хорошее объяснение.
Таким образом, я адаптировал сценарий к
hostname
echo -n "Make your choice :"
read choice
echo "You typed " ${choice}
echo done
и это не работало.
таким образом, я переместил сценарий в удаленное для предотвращения локального перенаправления на ssh. (Мои команды находятся в файле, названном f),
cat f | ssh user@remotehost.com 'cat >remf'
ssh user@remotehost bash remf
Это работало. Вот вывод:
christian@clafujiu:~/tmp$ ssh localhost bash tmp/f
christian@localhost's password:
Linux clafujiu 2.6.32-52-generic #114-Ubuntu SMP Wed Sep 11 19:00:15 UTC 2013 i686 GNU/Linux
Sun Nov 10 14:58:56 GMT 2013
Make your choice :abc
You typed abc
done
Поскольку @terdon упомянул, что исходное содержание должно было запустить локальные скрипты удаленно, удаленная копия может быть автоматизирована, это - всего один пример все на одной строке.
REMID=`cat f |ssh user@remotehost 'cat > remf_$$; echo $$'` ;ssh root@redtoadservices.com "bash remf_${REMID} ; rm -v remf_${REMID}"
$ apt-cyg install yourPackage
В цикле while должен быть блок, как показано ниже, который отсутствует.