2015-10-22 44 views
1

我在Raspberry Pi 2上运行Raspbian-Wheezy(基于Debian)3.18当我尝试在bash中使用文件测试运算符时,我得到的命令未找到错误。
例如:Bash无法识别文件测试运算符

>> -d ./bin

产量

bash: -d: command not found

这发生在终端和在所有的文件测试操作符我曾尝试(-d,-e,外壳脚本 - f等)。从我所能找到的,似乎这些命令应该被内置到bash中。任何想法,我要去哪里错了?

+0

这些不是shell的运算符。他们是'测试'/'['的操作员。 (例如'test -d。/ bin'或'[-d ./bin]'。 –

回答

2

文件测试操作符只在test命令(test[ ... ][[ ... ]])的上下文中识别。这也适用于其他运营商如-z-n等,与您可能希望在条件表达式中使用的大多数其他测试一起:

$ test -d bin 
$ 

注意,有没有输出;它只是将最后一个状态变量$?设置为0,如果为true,则将1设置为false。您必须使用if或其他值来使用该值:

if test -d ./bin; then 
    echo "./bin is a directory" 
else 
    echo "./bin is not a directory" 
fi