0
所以我有這塊代碼。基本上,我將文件$ i,檢查它是否有內容,檢查是否可以讀取它,如果我可以打開它,抓住第一行,看看它是否是bash文件。當我每次在非空文件上運行它時,它都被記錄爲真和echo的bash。BASH:比較字符串,一個來自文件,一個來自我的程序,如果語句總是爲真
## File is empty or not
if [[ -s $i ]]
then
## Can we read the file
if [[ -r $i ]]
then
## File has content
if [[ $(head -n 1 $i) = "#! /bin/bash" ]]
then
echo -n " bash"
fi
fi
else
## file does not have content
echo -n " empty"
fi
這是什麼呢,如果它的bash的檢查:
if [[ $(head -n 1 $i) = "#! /bin/bash" ]]
@Snow_Mac奇怪的是,當我在下面發佈的代碼完全匹配你的代碼時,奇怪的工作。真的想知道爲什麼。 – Timeout 2012-02-13 00:27:08
@ b1naryj您是否嘗試過錯誤的情況(也就是說,當文件不是以「#test」開頭時)? – 2012-02-13 00:32:05
@'Adam Liss'是的,它也有效。找不到任何問題。我在OSX 10.7上,也許解釋器略有不同。 – Timeout 2012-02-13 00:51:29