Выберите Команду, не работающую в то время как выполненные сценарии оболочки над удаленной машиной

Я хочу выполнить свой сценарий оболочки на удаленной машине, и мне нужен пользователь, хотят дать значение для некоторой переменной для этого, мы используем команду 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

Этот код хорошо работает для когда запущенные скрипты на локальной машине.

Заранее спасибо!

0
задан 24 December 2015 в 13:42

2 ответа

Если Вы говорите bash читать команды от stdin, который является тем, что -s опция делает и затем перенаправляет свой stdin, Вы не можете обеспечить вход через stdin больше.

Вы должны он как нормальный сценарий:

ssh root@192.168.1.116 bash /root/BackupShellScript/remote.sh

И источник /usr/local/etc/BackupShellScript/configuration.conf из Вашего сценария, вместо того, чтобы взломать Ваш путь вокруг с cat и замена процесса.

4
ответ дан 26 July 2019 в 11:32

Тот сценарий не работает даже локально - не берут в голову с 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
1
ответ дан 26 July 2019 в 11:32

Другие вопросы по тегам:

Похожие вопросы: