shell脚本的test--逻辑判断易错点
①[ -a etc/.... ]
1.中括号两边要有空格
2.-a和-e的区别
-e能取反 -a不能
②[ $str1 = $str2 ] 中间等号不连接,表示判断是否相等;连接表示赋值
str1=mage;str2=cai;[ $str1 = $str2 ];echo $?
0
str1=mage;str2=mage;[ $str1 = $str2 ];echo $?
1
③[[ ]] 用通配符或正则表达式 的时候使用
=~ 右侧认为是正则表达式
== 右侧相当于通配符
④{ }非子进程
前面空格+结尾分号,如{ xxx;}
⑤()子进程
[root@centos8 ~]#name=mage;(echo $name;name=wang;echo $name );echo $name
mage
wang
mage
[root@centos8 ~]#name=mage;{ echo $name;name=wang;echo $name; } ;echo $name
mage
wang
wang
⑥软链接问题
rm -rf dirlink/ //将会删除文件
rm -rf dirlink //将不会删除文件,删除软链接

浙公网安备 33010602011771号