字符串比较报错
今天要歸檔日志時發現要排除當日的日志不能歸檔,gz -9 $filename 但發現沒有--exclude 選項,故選擇使用判斷語句進行排除特定文件名。
但使用if ..then ..fi 判斷字符串是否相等時報錯:
syntax error near unexpected token `then'
原因:
if 與‘['之間沒有加空格導致的。
完整判斷shell 如下:
if [ "$a"x! = "$b"x ] then; echo "hello world"; fi這里的關鍵有幾點: (http://www.jb51.net/article/33971.htm)
1 使用單個等號?
2 注意到等號兩邊各有一個空格:這是unix shell的要求?
3 注意到"$test"x最后的x,這是特意安排的,因為當$test為空的時候,上面的表達式就變成了x = testx,顯然是不相等的。而如果沒有這個x,表達式就會報錯:[: =: unary operator expected?
轉載于:https://www.cnblogs.com/davidwang456/p/4226766.html
總結
- 上一篇: spring beans源码解读之--总
- 下一篇: AOP 的利器:ASM 3.0 介绍