У меня есть простой сценарий bash:
echo "Hello!"
read varname
echo "you entered " $varname
Таким образом, он выдает «Hello!»а затем принимает пользовательский ввод и выводит текст, который был введен.
Сценарий может быть успешно выполнен с использованием PuTTY.
Также я могу запустить сценарий с помощью Plink через Windows cmd
.Я подключаюсь к хосту:
plink.exe -batch -i C: \ путь \ к \ key.ppk user @ host
А затем я меняю каталог и запускаюскрипт:
cd mydir
bash myscript.sh
Скрипт работает как требуется: печатает "Hello!"и затем запрашивает ввод и печатает ввод.
Однако, если я запускаю сценарий с той же строкой с подключением Plink:
plink.exe -batch -i C:\path\to\key.ppk user@host bash ./mydir/myscript.sh
, я получаю следующую ошибку: я вижу «Привет!"вывод и курсор мигает на следующей строке.Но я не могу напечатать какой-либо символ там.Консоль просто не реагирует ни на одну клавишу и даже на Enter.Единственный способ продолжить - нажать Ctrl + C, чтобы закрыть соединение.
Итак, как решить эту проблему и заставить скрипт принимать входные данные, используя cmd + Plink, если скрипт выполняется с использованием одной строки?