Я Win10 и установил Openssh. Мой роутер работает Openwrt . Код пишется через BASH
!!! Код здесь !!!
flag1=1
option1_1="Its num1"
while [[ "$flag1" = "1" ]];do
read -n 1 -p "Please input num1 :" input1
case ${input1} in
1)
echo .
read -n 1 -p "Your input is: $input1,comfirm?[1/0]" comfirm1
if [[ "$comfirm1" = "1" ]];then
echo .
echo Your input is $input1,Goodbye
flag1=0
fi
;;
*)
echo Its not num1 ,please input again
flag1=1
;;
esac
done
В моем роутере есть файл .sh, и мне нужно запустить его, выполнив следующие действия:
Шаги:
- Win + R, чтобы открыть cmd.exe
- введите эту команду: ssh example@192.168.1.1 sh example.sh
И тут возникает проблема: она не может нормально читать переменную и не может вывести слова, которые я пишу в файле.
НО, если бы я запустил этот скрипт, используя приведенную ниже команду, он бы работал нормально:
Шаги:
- Win + R, чтобы открыть cmd.exe
- тип: ssh example@192.168.1.1
- тип: sh example.sh
Проблемы: (Я загрузил видео на Youtube: https://youtu.be/TPE9CjUQvxo)
Он должен прочитать два «1» и сохранить в $ input1 и $ comfirm1 , но на самом деле он будет правильно читаться только тогда, когда я наберу «11», другой ввод вызовет цикл навсегда.
Я кое-что заметил, но я не знаю, что можно сделать:
Вещи, которые я заметил:
- Когда я использую одну команду «ssh xxx@xxx.xxx.xxx.xxx sh xxx.sh», заголовок окна cmd.exe по-прежнему остается «C: \ Winodws \ system32 \ cmd.exe -ssh xxx @ xxx». xxx.xxx.xxx sh test.sh ". НО когда я разбиваю эту команду на две команды, она меняется на" OpenSSH SSH клиент "
- Когда я использую одну команду, код
read -n 1 -p "xxx"
не будет работать. Он не может показывать слова -p или читать только 1 символ.
Кто-нибудь знает, что случилось, и дайте мне совет, чтобы это исправить ??