Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 巴什旺';无法识别文件测试操作符_Linux_Bash_Shell_Raspberry Pi2_Debian Based - Fatal编程技术网

Linux 巴什旺';无法识别文件测试操作符

Linux 巴什旺';无法识别文件测试操作符,linux,bash,shell,raspberry-pi2,debian-based,Linux,Bash,Shell,Raspberry Pi2,Debian Based,我在树莓皮2上运行树莓喘息(基于Debian)3.18。当我尝试在bash中使用文件测试操作符时,我发现命令未找到错误。 例如: >-d./bin 屈服 bash:-d:未找到命令 对于我尝试过的所有文件测试操作符(-d,-e,-f,等等),这在终端和shell脚本中都会发生。据我所知,这些命令似乎应该内置到bash中。你知道我哪里出错了吗?文件测试操作符只能在测试命令(测试或[..]或[[..]]的上下文中识别。这适用于其他运算符,如-z或-n等,以及您可能希望在条件表达式中使用的大多数其他测

我在树莓皮2上运行树莓喘息(基于Debian)3.18。当我尝试在bash中使用文件测试操作符时,我发现命令未找到错误。
例如:

>-d./bin

屈服

bash:-d:未找到命令


对于我尝试过的所有文件测试操作符(-d,-e,-f,等等),这在终端和shell脚本中都会发生。据我所知,这些命令似乎应该内置到bash中。你知道我哪里出错了吗?

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

$ test -d bin
$
注意,没有输出;它只是将最后一个状态变量
$?
设置为0(如果为真),1(如果为假)。您必须使用
if
或其他方法来利用该值:

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

这些不是shell的操作符。它们是
test
/
[
(例如
test-d./bin
[-d./bin]
)的操作符。如果需要通过变量动态传递文件测试操作符,则需要使用
if test-d
而不是
if[-d