2017-05-18 34 views
0

我有識別時文件是空的一個簡單的命令,但沒有工作如果在linux bash中文件爲空,我該如何獲得回聲輸出?

MN=$(echo "$(cat empty)") ; 

if [ MN == "" ]; then echo "This file is empty"; else echo "This file has been edited. You'll need to do it manually."; fi 

什麼我做錯了

請幫我

+0

'[MN == 「」]'總是會是假的(甚至忽略了''==不保證工作:唯一POSIX字符串比較操作符是'='),因爲字符串''MN「'和字符串'」「''是不一樣的。如果你的意思是'[「$ MN」=「」]',那麼這是一個不同的操作。 :) –

+0

......順便說一句,你也可以寫成'[-z「$ MN」]'。注意引號 - 如果行爲需要健壯,它們不是可選的。而且,爲所有大小寫變量名稱指定了對操作系統或shell有意義的名稱,而小寫名稱保證不會與對shell或內置實用程序有意義的變量衝突;見第四段http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html –

+0

太棒了;非常感謝你幫我解決這個 – zzero

回答

2

test -s測試文件是否存在,是否是空的。

if test -e empty && ! test -s empty; then 
    echo "This file exists but is empty" 
fi 
+0

非常感謝你的幫助 – zzero

+0

看'man test'下'-s '。 '-s'測試一個文件是否爲空。所以這個如果應該被否定。看到其他回答的問題,這是 – Alejandro

+0

的重複確實如此;修正。 –

相關問題