還有的在shell腳本下面的部分,我正在寫:不同的行爲在bash字符串比較,而在函數內部
(查看最新的目錄中someDir
這是不summary/
)
latestDirName=""
for dirName in `ls -lt /user/someDir/ | head -3 | tail -n +2 | awk '{print $9}'`
do
if [ "$dirName" == "summary" ]; then
continue
fi
latestDirName=$dirName
done
這裏$dirname
抵抗串summary
比較,而dirName
變量的迭代期間的回波將打印爲summary/
該比較當代碼寫入文件並執行時,部分工作正常。
但是,一旦這個相同的代碼放入一個函數並放在我的bashrc中,在if
檢查中的比較似乎不起作用!
這是否與字符串是一個目錄名稱有關,或者它有/
?
當相同的代碼在一個函數內時,它會產生什麼不同?
代碼內的bashrc:
findLatestDir()
{
latestDirName=""
for dirName in `ls -lt /user/someDir/ | head -3 | tail -n +2 | awk '{print $9}'`
do
if [ "$dirName" == "summary" ]; then
continue
fi
latestDirName=$dirName
done
}
腳本被稱爲如下:
情況#1(在文件中的代碼):$ ./findLatestDir.sh
情況#2(在bashrc中功能):$ findLatestDir
'繼續'對我來說沒有意義 – hek2mgl
請發佈代碼,演示如何創建和調用函數,並演示您正在觀察的錯誤行爲。 – chepner
hek2mgl爲什麼? chepner更新了問題的完整細節 – eternalthinker