Linux 巴什旺';无法识别文件测试操作符
我在树莓皮2上运行树莓喘息(基于Debian)3.18。当我尝试在bash中使用文件测试操作符时,我发现命令未找到错误。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等,以及您可能希望在条件表达式中使用的大多数其他测
例如:
>-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
。