Bash脚本编程:变量、字符串与算术运算技巧
1. 未设置参数的错误处理
在编写脚本时,有时需要强制用户提供参数,否则脚本无法继续执行。传统的做法是使用大量的 if 语句来检查每个参数,但这种方法比较繁琐。可以使用 ${:?} 语法来实现这一功能。
#!/usr/bin/env bash
USAGE="usage: myscript scratchdir sourcefile conversion"
FILEDIR=${1:?"Error. You must supply a scratch directory."}
FILESRC=${2:?"Error. You must supply a source file."}
CVTTYPE=${3:?"Error. ${USAGE}"}
当运行脚本时,如果参数未设置或为空, bash 会打印错误信息并退出:
$ ./myscript /tmp /dev/null
./myscript: line 7: 3: Error. usage: myscript scratchdir sourcefile conversion
不过, ${:?} 产生的错误信息会包含脚本文件名和行号,这可能会让用户误以为是脚本本身出错。而且,这种方式在商业级脚本中不太受欢迎,因为它的可读性较差。如果想对所有变量都应用这种处理方式,可以使用 set -u 命令: <
超级会员免费看
订阅专栏 解锁全文
1515

被折叠的 条评论
为什么被折叠?



