此链接通往 Bash Shell 编程学习的目录导航 ,从入门到放弃,感兴趣的可以去看看:
当你在脚本中写入位置变量的时候,如果忘记在执行脚本后面跟上 参数的时候,
会报错又麻烦,那么如何让脚本提醒用户添加位置变量的参数呢??
root@zhengzelin:~# vim test.sh
[ $# -ne 2 ] && echo -e "\e[1;32m您输入的位置变量的参数不够脚本里的所有位置变量,请重新输入....\e[0m" && exit
echo "this is $1"
echo "this is $2"
exit
root@zhengzelin:~# ./test.sh 1 2 3
您输入的位置变量的参数不够脚本里的所有位置变量,请重新输入....
root@zhengzelin:~# ./test.sh 1 2
this is 1
this is 2
但是还不够严谨,因为这 只是指定了 位置变量参数的个数!并没有指定 位置变量参数的类型!
如果我这边的位置变量需要你填写 字符串,而你却使用了数字;
虽然个数与脚本内的位置变量个数一样,但是与我要求的字符串类型不一样,那也是不行的!
这样解决: 使用字符串测试符: =~
[ $# -ne 2 ] && echo -e '\e[1;33m请您确认您所输入的位置变量的参数是否为2两个!\e[0m' && exit
sleep 2
[[ $1 =~ ^[0-9]+$ ]] || exit
# 要求第一个位置变量必须为:纯数字,不是则推出
sleep 2
[[ $2 =~ ^[a-z]+$ ]]