#!/bin/bashif [ $1 == "help" ]; thenecho"Sorry -- No help available for $0"else CMD=`which $1 >/dev/null 2>&1`if [ $? != 0 ]; thenecho"$1: No such command -- maybe misspelled or not on your search path"exit2else cmd=`basename $1` whatis $cmdfifi
11. 充分利用错误代码
可以在脚本中使用返回码来确定命令是否得到预期的结果。
#!/bin/bash# check if the person is still logged in or has running processesps -U $username2> /dev/nullif [ $? == 0 ]; thenecho"processes:" >> /home/oldaccts/$username ps -U $username >> /home/oldaccts/$usernamefi
...date >> /tmp/report$$echo "Your report is /tmp/report$$"
13. 引号与扩展参数
如果你正在使用脚本中扩展的字符,不要忘记使用引号,这样就不会得到与预期不同的结果。
#!/bin/bashmsg="Be careful to name your files *.txt"# this will expand *.txtecho$msg# Be careful to name your files behavior_20170728.txt exception.txt# this will notecho"$msg"# Be careful to name your files *.txt