2012-05-02 127 views
1

我是脚本编程新手,我在脚本中发现了下面的表达式。这个脚本是什么意思

if [ -d $_path ];then 

有人可以帮我理解-d $ _path在if语句中的含义吗?

在此先感谢您的帮助。

+1

注意的cmd.exe不是DOS。从1998年开始,Windows就是一个命令解释器。而且bash也不是DOS。 DOS是一个16位操作系统,afaik,而不是一个shell。 Windows调用了一个桌面图标“DOS-prompt”,它启动了一个shell,大部分与cmd.32兼容,但与Bash不兼容。 –

回答

3

man test

-d FILE 
    FILE exists and is a directory 
+0

'man'听起来很不舒服。 –

+1

既不在问题示例中的测试括号,也不是“bash”标签。 :-) –

+0

哦,我没有提到他们。 :)原谅。 –

2

这对_path是否是一个目录的测试。

注意bash和DOS是两个完全不同的东西。

1

它检查_path的值是否是一个目录。请注意,_path是一个变量,而$是get-value-of操作(排序);它不寻找名为$_path的文件夹。

举个例子:

> mkdir dir 
> touch file 
> ls 
dir/ file 
> _path=dir # set the variable `_path` 
> if [ -d $_path ]; then echo yes; else echo no; fi 
yes 
> _path=file 
> if [ -d $_path ]; then echo yes; else echo no; fi 
no