2013-08-29 30 views
0

你好,這是一段代碼什麼 - 在ksh中做什麼?

if [ -a $OUT ] 
then 
rotate $OUT 
fi 

我新的shell腳本並沒有得到什麼-a是在那裏做什麼,當我刪除它拋出接受一個錯誤的說法。

回答

1

構造[ -a $OUT ]是一種如何檢查文件/目錄$OUT是否存在的方法。如果是,則返回0(真),否則返回1(假)。你可以像

if test -a $OUT; then 
    rotate $OUT 
fi 

檢查help test的更多細節和附加的一元/二元算test內建/系統命令重寫。

1

-a由於與傳統的「和」運算符(現在通過將test語句與&&合併在一起而被廢棄)已經過時並且令人困惑。

-e應該用於測試文件是否存在。

+0

+1請注意,POSIX也不贊成使用'-a'來支持將兩個'test'命令與'&&'相結合,所以'[...] && [']'而不是'[..] .a ...]'。 – chepner

+0

@chepner事實上,anwser已更新。 – jlliagre