Я хочу выполнить свой сценарий оболочки на удаленной машине, и мне нужен пользователь, хотят дать значение для некоторой переменной для этого, мы используем команду Read, в то время как запущенный скрипт на локальной машине, но я использую ту же команду, в то время как запущено скрипт на удаленной машине, но это не работает на меня. Как использовать команду Read для запущенного скрипта на удаленной машине?
пример кода:
restore (){
echo "Restore"
}
deploy () {
echo "Deploy"
}
echo "Select any option to proceed..."
read opt
case $opt in
restore)
restore;
break;;
deploy)
deploy;
break;;
esac
Этот код хорошо работает для когда запущенные скрипты на локальной машине.
Заранее спасибо!
Если Вы говорите bash
читать команды от stdin
, который является тем, что -s
опция делает и затем перенаправляет свой stdin, Вы не можете обеспечить вход через stdin больше.
Вы должны он как нормальный сценарий:
ssh root@192.168.1.116 bash /root/BackupShellScript/remote.sh
И источник /usr/local/etc/BackupShellScript/configuration.conf
из Вашего сценария, вместо того, чтобы взломать Ваш путь вокруг с cat
и замена процесса.
Тот сценарий не работает даже локально - не берут в голову с ssh.
проблема состоит просто в том, что Вы помещаете свой результат в option
и затем используете case $opt
. Так изменение option
к opt
и все хорошо.
#!/bin/bash
restore (){
echo "Restore"
}
deploy () {
echo "Deploy"
}
echo "Select any option to proceed..."
select opt in "deploy" "restore" ; do
case $opt in
restore)
restore;
break;;
deploy)
deploy;
break;;
esac
done