我正在处理http://tldp.org/LDP/abs/html/debugging.html中的示例,并希望得到一些帮助来解释为什么这个脚本会抛出错误的内部[37:命令未找到
#!/bin/bash
# ex74.sh
# This is a buggy script.
# Where, oh where is the error?
a=37
if [$a -gt 27 ]
then
echo $a
fi
exit $? # 0! Why?
答案 0 :(得分:1)
if [ $a -gt 27 ]
^
|
add space here
[
之后的空格的原因是因为[
也不是语法。这是一个简单的命令。通常是内置的shell。 shell执行命令[
,其余作为参数,包括]作为必需的最后一个参数。如果在[
之后没有放置空格,shell将尝试执行[whatever
作为命令并失败。
之前空间的原因是相似的。因为否则它将不会被识别为自己的参数。