我有这个代码,它被设置为一个步骤的条件。 代码中'-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