2013-03-15 133 views
0

我有這個代碼,它被設置爲一個步驟的條件。 代碼中'-d'是什麼意思?在Unix中'-d'做什麼?

if [ -d $FTBASEDIR/$1/$2 ]; then 
    ftcmd="lcd $FTBASEDIR" 
    ftcmd2="cd $FTROOTDIR" 
    ftcmd3="put $1" 
fi 

回答

4

這意味着:下面的參數是一個目錄嗎?

bash手冊頁(CONDITIONAL EXPRESSIONS下):

-d file 
    True if file exists and is a directory. 

有一系列這樣的主機,讓你發現常規文件,字符特殊文件,文件是否可寫,等等。

1

[實際上是一個命令名(幾乎)相當於test命令。

[都和test在許多彈實現既作爲一個內置的命令,以及作爲實際可執行文件,通常在/usr/bin[通常是符號鏈接到test)。 (在過去,他們只是可執行文件。把他們加入外殼讓測試執行的速度更快)

對於bash或爲test命令的文檔說明了-d測試以下參數是否是一個目錄。

(我寫的「近」以上;不同的是,[需要匹配]參數,而test沒有。)

+0

如果文件存在,我需要測試什麼? – 2013-03-15 03:04:07

+0

@ user2172204:'man test' – 2013-03-15 05:39:55