パスワードを手動で入力してください

パスワードを手動で入力してください

スクリプトが実行中です。

#!/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

関連情報