分类 系统管理 下的文章

Linux云计算交流群:720995729

linux command

如果你正在写一个脚本,需要通过用户输入一个字符串,来决定后面的程序是否执行。并且还要考虑用户可能会输入大写字符或小写字符,或者不输入字符直接回车的情况。你会怎么写?

基于case匹配用户输入信息:

[root@www.lutixia.cn ~]# cat case.sh
#!/bin/bash
#by lutixia

read -n1 -p "你是否想继续安装lnmp呢? [Y/N] " answer 
case $answer in
# 匹配用户输入的大写Y或者小写y:
Y|y)echo
        echo "好的,正在安装lnmp..."
        ;;
# 匹配用户输入的大写N或者小写n:
N|n)echo
        echo "好的,退出安装程序!"
        exit
        ;;
esac

81046-5zkmsnp4kkp.png

基于变量扩展与逻辑语法:

[root@www.lutixia.cn ~]#  cat test2.sh 
#!/bin/bash
#by lutixia

# 定义一个小写的变量,即使用户输入大写字母也自动变为小写
declare -l answer
# 限制用户输入一个字符:
read -n1 -p "你是否想继续安装lnmp呢? [Y/N] " answer

# 设置answer变量默认值为y,即用户直接回车时,变量值为y
[[ ${answer:="y"} = "y" ]] && echo -e "\n好的,正在安装lnmp..." || echo -e  "\n好的,退出安装程序!" 

72218-1lfutrijxfeh.png