1

我有这个代码,它被设置为一个步骤的条件。代码中的“-d”是什么意思?

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

3 回答 3

5

这意味着:以下参数是目录吗?

bash手册页(下CONDITIONAL EXPRESSIONS):

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

有很多这些,让您发现常规文件、字符特殊文件、文件是否可写等等。

于 2013-03-15T01:51:11.193 回答
1

来自http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions

-d file

如果文件存在并且是目录,则为真。

于 2013-03-15T01:52:11.403 回答
1

[实际上是一个命令名,(几乎)等同于test命令。

两者[test都作为许多 shell 中的内置命令实现,也作为实际的可执行文件实现,通常在/usr/bin([通常是指向test) 的符号链接。(在过去,它们只是可执行文件;将它们构建到 shell 中可以更快地执行测试。)

bash 或test命令的文档解释了-d测试以下参数是否是目录。

(我在上面写了“几乎”;不同之处在于[需要匹配的]参数,test而不需要。)

于 2013-03-15T01:55:32.017 回答