linux 腳本判斷文件內容有空格


linux bash中too many arguments問題的解決方法

 

,"[[  ]]"比"[ ]"具有更好的通用性

判斷一個文件的內容是不是為空,使用語句:

if test -z `cat filename`

當filename為空或者只有一行沒有空格的字符串的時候,一切正常,反之,則會報:too many arguments,甚至是: binary operator expected之類的錯誤。

 

顯示一下code:     if [ -z ` lsof -i:22 ` ]    //這種寫法會報too many arguments,改成[[ -z ` lsof -i:22 ` ]]
                            then
                                 echo "the port is not running"
                             else 
                                 echo "the port is running"
                             fi

運行這個簡單shell腳本時,總是報too many arguments,最后才查到和版本的通用性是有關系的,更簡單的說是,"[[  ]]"比"[ ]"具有更好的通用性,所以,為了避免這種問題的發生,直接將"[  ]"替換成"[[  ]]"就可以了。而且”[[ ]]“比“[ ]”比它有更強的容錯性,也就是在"[ ]"可能報的錯在"[[ ]]結構中可能不報錯,比如&&,||等這樣的邏輯判斷,因不是本篇重點,一帶而過了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM