Shell是一种脚本语言,通常用于自动化执行任务和处理文件。对于一个开发者来说,熟练掌握Shell输入是非常必要的。在本篇文章中,我们将从多个方面探讨Shell输入的相关内容。
一、Shell输入回车默认值
当我们在Shell中输入注册用户的性别时,我们希望只允许输入“男”或“女”,如果用户输入其他值,那么程序会要求用户重新输入。在这种情况下,我们可以设置默认值,让用户输入回车,则会使用默认值。下面是示例代码:
read -p "请输入你的性别(默认为男):" sex sex=${sex:-男} echo "你的性别是$sex"
上述代码中,使用了read命令向用户请求输入,并使用了-p选项指定了提示信息。如果用户输入回车,则使用默认值“男”;否则,使用用户输入的值。运行以上代码,示例如下:
请输入你的性别(默认为男): 你的性别是男
二、Shell判断输入
在Shell中,我们经常需要判断用户输入是否符合我们的要求。在下面的示例中,我们用到了if语句对用户输入的值进行判断。
read -p "请输入你的年龄:" age if [ $age -le 18 ];then echo "你还未成年" else echo "你已成年" fi
在上述代码中,我们使用了read命令向用户请求输入,然后使用if语句判断用户输入的年龄是否小于等于18。如果是,则输出“你还未成年”,否则输出“你已成年”。示例输出如下:
请输入你的年龄:20 你已成年
三、Shell输入命令
在Shell中,我们可以使用read命令获取用户输入的命令,并使用eval命令来执行该命令。下面是示例代码:
read -p "请输入一个命令:" cmd eval $cmd
在上述代码中,我们使用了read命令请求用户输入命令,并使用eval命令来执行该命令。示例输出如下:
请输入一个命令:ls -l 总用量 24 drwxr-xr-x 1 root root 12288 7月 30 07:24 bin drwxr-xr-x 3 root root 4096 8月 7 07:37 lib drwxr-xr-x 2 root root 4096 7月 30 07:24 sbin drwxr-xr-x 2 root root 4096 7月 30 07:24 src
四、Shell输入一组数据求最大值
在Shell中,我们可以使用循环语句和判断语句来求一组数据的最大值。下面是示例代码:
read -p "请输入数据(以空格分隔):" data max=0 for i in $data do if [ $i -gt $max ];then max=$i fi done echo "数据中的最大值为:$max"
在上述代码中,我们使用了read命令请求用户输入一组数据,并使用循环语句和判断语句来求得这组数据的最大值。示例输出如下:
请输入数据(以空格分隔):5 9 3 7 2 数据中的最大值为:9
五、Shell输入参数
在Shell中,我们可以使用$0、$1、$2等变量获取脚本或函数的参数。下面是示例代码:
#!/bin/bash echo "脚本名称:$0" echo "第一个参数:$1" echo "第二个参数:$2"
在上述代码中,我们使用了$0、$1、$2等变量来获取脚本或函数的参数,并使用echo命令输出这些变量的值。示例输出如下:
$ ./test.sh arg1 arg2 脚本名称:./test.sh 第一个参数:arg1 第二个参数:arg2
六、Shell输入名字年份
在Shell中,我们可以使用read命令请求用户输入名字和年份,并使用echo命令输出拼接后的字符串。下面是示例代码:
read -p "请输入你的名字:" name read -p "请输入你的出生年份:" year age=`expr $(date +%Y) - $year` echo "你好,$name,你今年${age}岁了"
在上述代码中,我们使用了read命令请求用户输入名字和年份,并使用expr命令计算出用户的年龄,并使用echo命令输出拼接后的字符串。示例输出如下:
请输入你的名字:张三 请输入你的出生年份:1990 你好,张三,你今年31岁了
七、Shell输入一个数字
在Shell中,我们可以使用read命令请求用户输入一个数字,并使用正则表达式判断用户输入是否为数字。下面是示例代码:
while true do read -p "请输入一个数字:" num if [[ $num =~ ^[0-9]+$ ]]; then echo "$num 是一个数字" break else echo "输入有误,请重新输入" fi done
在上述代码中,我们使用了while循环语句,在循环体内使用read命令请求用户输入数字。然后使用正则表达式判断用户的输入是否为数字。如果输入正确,则输出“xxxx是一个数字”,否则提示用户输入有误。示例输出如下:
请输入一个数字:abc 输入有误,请重新输入 请输入一个数字:123 123 是一个数字
八、Shell输入密码不显示
在Shell中,我们可以使用read命令请求用户输入密码,并使用密码模式隐藏用户的输入。下面是示例代码:
#!/bin/bash echo -n "请输入密码:" read -s password echo echo "你输入的密码是:$password"
在上述代码中,我们使用了-s选项让read命令进入密码模式,并使用echo命令输出用户的密码。在输出之前,我们使用了-n选项使echo命令不换行。示例输出如下:
请输入密码:(用户输入密码,但不可见) 你输入的密码是:(用户输入的密码)
九、Shell输入密码
在Shell中,我们可以使用read命令请求用户输入密码,并使用stty命令设置终端显示模式。下面是示例代码:
#!/bin/bash echo -n "请输入密码:" stty -echo read password stty echo echo echo "你输入的密码是:$password"
在上述代码中,我们使用了-stty命令来设置终端的显示模式。在读取用户输入密码之前,我们使用了-echo选项来关闭终端输出,这样用户输入的密码就不会被显示出来。在读取完用户输入的密码后,我们使用了echo命令输出。示例输出如下:
请输入密码:(用户输入密码,但不可见) 你输入的密码是:(用户输入的密码)
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/231702.html