该脚本正在运行:
#!/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