WIN10 openssh в cmd «ssh xxx@xxx.xxx.xxx.xxx sh xxx.sh» ошибка, не может прочитать переменную обычно - PullRequest
1 голос
/ 16 марта 2019

Я 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, и мне нужно запустить его, выполнив следующие действия:

Шаги:

  1. Win + R, чтобы открыть cmd.exe
  2. введите эту команду: ssh example@192.168.1.1 sh example.sh

И тут возникает проблема: она не может нормально читать переменную и не может вывести слова, которые я пишу в файле.

НО, если бы я запустил этот скрипт, используя приведенную ниже команду, он бы работал нормально:

Шаги:

  1. Win + R, чтобы открыть cmd.exe
  2. тип: ssh example@192.168.1.1
  3. тип: sh example.sh

Проблемы: (Я загрузил видео на Youtube: https://youtu.be/TPE9CjUQvxo)

Он должен прочитать два «1» и сохранить в $ input1 и $ comfirm1 , но на самом деле он будет правильно читаться только тогда, когда я наберу «11», другой ввод вызовет цикл навсегда.

Я кое-что заметил, но я не знаю, что можно сделать:

Вещи, которые я заметил:

  1. Когда я использую одну команду «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 клиент "
  2. Когда я использую одну команду, код read -n 1 -p "xxx" не будет работать. Он не может показывать слова -p или читать только 1 символ.

Кто-нибудь знает, что случилось, и дайте мне совет, чтобы это исправить ??

...