我有這個代碼,它被設置爲一個步驟的條件。 代碼中'-d'是什麼意思?在Unix中'-d'做什麼?
if [ -d $FTBASEDIR/$1/$2 ]; then
ftcmd="lcd $FTBASEDIR"
ftcmd2="cd $FTROOTDIR"
ftcmd3="put $1"
fi
我有這個代碼,它被設置爲一個步驟的條件。 代碼中'-d'是什麼意思?在Unix中'-d'做什麼?
if [ -d $FTBASEDIR/$1/$2 ]; then
ftcmd="lcd $FTBASEDIR"
ftcmd2="cd $FTROOTDIR"
ftcmd3="put $1"
fi
這意味着:下面的參數是一個目錄嗎?
從bash
手冊頁(CONDITIONAL EXPRESSIONS
下):
-d file
True if file exists and is a directory.
有一系列這樣的主機,讓你發現常規文件,字符特殊文件,文件是否可寫,等等。
從http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions:
-d file
真,如果文件存在且是一個目錄。
[
實際上是一個命令名(幾乎)相當於test
命令。
[
都和test
在許多彈實現既作爲一個內置的命令,以及作爲實際可執行文件,通常在/usr/bin
([
通常是符號鏈接到test
)。 (在過去,他們只是可執行文件。把他們加入外殼讓測試執行的速度更快)
對於bash或爲test
命令的文檔說明了-d
測試以下參數是否是一個目錄。
(我寫的「近」以上;不同的是,[
需要匹配]
參數,而test
沒有。)
如果文件存在,我需要測試什麼? – 2013-03-15 03:04:07
@ user2172204:'man test' – 2013-03-15 05:39:55
感謝您回覆。 – 2013-03-15 03:04:30