在艰难地学习 bash 的过程中,我发现[
andtest
既是命令又是同义词,而且都是内置的。
由于它是内置的,它不应该给出任何错误 builtin [
,但我得到了-bash: [: missing `]'
,有人可以在这里解释一下内置的行为吗?提前致谢。
anupam:Markdown$ which [
/usr/bin/[
anupam:Markdown$ echo $?
0
anupam:Markdown$ which test
/usr/bin/test
anupam:Markdown$ echo $?
0
anupam:Markdown$ builtin test
anupam:Markdown$ echo $?
1
anupam:Markdown$ builtin [
-bash: [: missing `]'
anupam:Markdown$ echo $?
2
anupam:Markdown$
该
[
命令的版本要求]
作为强制性的最后一个参数(因此它必须以空格开头)。强制用户关闭括号中的“块”只是一种正式的语法方式,因此命令看起来像这样:代替
见
help [
:笔记
该
test
版本不要求也不接受最终的]
.你不需要
builtin
那里。内置命令优先于外部命令,因此[
只会执行内置命令。当您有函数或别名掩码时,该builtin
命令更有用[
。