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   //将不会删除文件,删除软链接

posted @ 2022-03-30 22:14  c8999999  阅读(59)  评论(0)    收藏  举报