SSHによるメニュースクリプト

SSHによるメニュースクリプト

ユーザー入力が必要なスクリプトがあります。ローカルで実行すると、私は好きなように動作しますが、SSHを介して実行したいと思います。

スクリプトを実行する一般的な方法を試しました。

ssh someaccount@somemachine 'mysscript.sh'

ssh someaccount@somemachine 'bash -s' < myscript.sh'

ただし、実行するとユーザー入力を待たず、メニューから選択することもできません。

#!/bin/bash
# Bash Menu Script Example

echo -n "What machine is sick ?"
  read machine

PS3='Please enter your choice: '
options=("Ping $machine" "Option 2" "Option 3" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "Ping $machine")
            echo "you chose to ping $machine"
                        ping -c1 $machine
            ;;
        "Option 2")
            echo "you chose choice 2"
            ;;
        "Option 3")
            echo "you chose choice 3"
            ;;
        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done

ありがとう

ベストアンサー1

コマンドラインから対話型コマンドを実行するには、ttyにリモート側に割り当てるように指示するssh必要があります。ssh(通常は問題ではなく、ほとんどの場合良い仮定です。)-tttyを割り当てるには、フラグを追加してください。

ssh -t someaccount@somemachine mysscript.sh

おすすめ記事