序言
- 等待用户输入参数后再继续执行的shell脚本如何实现
使用-n参数
#! /bin/bash
echo -n "enter your name: "
read name
echo "your name is $name"
- -n 表示字符串输出尾端不换行
使用-p参数
#! /bin/bash
read -p "enter your name: " name
echo "your name is $name"
或者:
#! /bin/bash
read -p "Please enter your age: " age
days=$[ $age * 365 ]
echo "That makes you over $days days old"
- -p 用于给出提示符
要输入多个参数时
#! /bin/bash
read -p "enter your name: " name1 name2
echo "your name is $name1 $name2"
输入多个参数但不指定变量
- 把任何数据都放到特殊环境变量$REPLY中
#! /bin/bash
read -p "enter your name: "
echo "your name is $REPLY"
增加计时参数:超时后继续往下执行
- -t单位为s,等待超时后将执行后续命令
#! /bin/bash
if read -t 5 -p "enter your name: " name
then
echo "your name is $name"
else
echo "waiting timeout!"
fi
安装选项的实现:Y/N
#! /bin/bash
read -p "do you want to continue [Y/N]: " choice
case $choice in
Y | y)
echo "installing";;
N | n)
echo "bye";;
*)
echo "wrong input, bye";;
esac
隐藏输入参数的信息,比如密码
- -s参数避免输入数据显示在屏幕上,但变量仍可用
#! /bin/bash
read -s -p "enter your password: " pwd # 屏幕上不会显示
echo "your password is $pwd" # 变量仍可用
【参考文章】
[1]. shell等待用户输入
[2]. read的多个实例,推荐
[3]. read命令,-t和-s参数
[4]. read的参数选项
created by shuaixio, 2024.03.30