鉴于这道题太麻烦,我单独列出来写一篇
:编写一个脚本/root/bin/createuser.sh,新建用户
语句一 :
[ "$1" == "-u" -a "$3" == "-m" ] || ( echo createuser.sh -u username -m password;exit 1 )为什么对格式判断只判断 -u 和-m
当在shell命令行输入时,会自动根据空格来区分脚本执行和各个位置变量,不用关心空格多少;根据题目要求把-u和-m 的顺序固定就好了。语句二:
上面那行是在命令行的测试 下面这行是要写在脚本里的代码 注意:[[]] 的判断只支持扩展正则表达式语句3: (最麻烦的)
综合:
注意:
单大括号,{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开。 对{}和()而言, 括号中的重定向符只影响该条命令, 而括号外的重定向符影响到括号中的所有命令。注意: ()在使用时,若 (exit ),则退出的是(),而不是脚本所在的shell。
终于把这道题做出来了。本来是打算用if 做的,可是又想挑战下;一边写着博客,一边自己做;折腾了半天。 只有最爱的 张艺兴 才能安慰我。