如上图,是我看到《Advanced Bash-scripting Guide》中的一段话,说是test是bash的内置命令,不会调用/usr/bin/test这个二进制可执行文件,而[也不会调用/usr/bin/[ ,看到这里就不懂了
1. /usr/bin/[是什么东西?
2. 为什么说它是连接到/usr/bin/test呢?
3. 还有下面的,“["的类型是内置命令,而"]”会提示命令没找到?
4. 既然/usr/bin/[是内置命令,那么下面的脚本运行会报错呢?
if /usr/bin/[ -z "$1"
then
echo "No command-line arguments"
else
echo "First command-line argument"
fi
我的bash版本是GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu),ABS书上说这个报错的问题已经在3.x上修复了,但是我的版本仍然会提示:/usr/bin/[: 缺少"]"