回答:
read
コマンドは、ユーザに入力を促し、この入力は変数に格納することができます。これは、スクリプトの3行目にありますread IP
。したがって、別の変数を取り込むには、別の変数に別の変数が必要read
です。
きれいな提案:
#!/bin/sh
read -p "Enter Server IP Address: " IP
read -s -p "Enter your Password: " PASSWORD
echo "$PASSWORD" | sudo -S ssh $IP </home/myscript.sh
-p
readコマンドのinはプロンプトを表し、入力を受け入れる前にメッセージを出力できます。これ-s
により、ユーザーの入力が表示されなくなり、肩越しに見ている人が入力内容を見ることができなくなります。
ユーザーにパスワードの入力を求めることができます:
#!/bin/sh
printf "Enter Server IP Address: "
read IP
printf "Enter Server Password: "
read -s PASSWORD
echo "$PASSWORD" | sudo -S ssh $IP
注:の-s
オプションはread
、ユーザー入力をエコーしません。したがって、他の人が端末で読み込めることを心配することなく、パスワードを入力できます。
または、コマンドライン引数を使用して入力します。
#!/bin/sh
usage() {
echo "$0 [IP] [PASSWORD]"
exit 1
}
if [ $# -eq 2 ]; then
IP=$1
PASSWORD=$2
else
usage
fi
echo "$PASSWORD" | sudo -S ssh $IP