スクリプトが実行中です。
#!/bin/sh
echo "Enter Server IP Address"
read IP
echo 'mypassword' | sudo -S ssh $IP </home/myscript.sh
IPアドレスとパスワードを手動で入力できるようにこれをどのように変更しますか?
答え1
この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
コマンドから代理人のプロンプトを読み、入力を受け入れる前にメッセージを出力できます。これにより、-s
ユーザーの入力が表示されず、後ろの人が入力した内容を表示できなくなります。
答え2
ユーザーにパスワードの入力を求められます。
#!/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