手动输入密码

手动输入密码

该脚本正在运行:

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

相关内容