【shell】shell实现等待用户输入

序言

  • 等待用户输入参数后再继续执行的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

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 15:54:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 15:54:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 15:54:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 15:54:05       20 阅读

热门阅读

  1. 【华为OD机试C++】进制转换

    2024-03-31 15:54:05       14 阅读
  2. [单调队列] 滑动窗口

    2024-03-31 15:54:05       13 阅读
  3. 一文总结vue和react的区别

    2024-03-31 15:54:05       14 阅读
  4. zookeeper命令详解1

    2024-03-31 15:54:05       19 阅读
  5. Zookeeper中的ACL 权限控制机制

    2024-03-31 15:54:05       13 阅读
  6. 初识 内嵌iframe

    2024-03-31 15:54:05       14 阅读
  7. import关键字的使用

    2024-03-31 15:54:05       17 阅读
  8. Google Earth Engine(GEE)——reduceNeighborhood的使用

    2024-03-31 15:54:05       17 阅读