shell脚本错误状态和语法检查

时间:2012-10-09 08:54:13

标签: shell syntax

我编写了一个shell脚本,我使用的命令很少,如rmls等。如果这些命令失败,我会检查返回状态'$?' 。但是如果脚本有一些语法错误,我怎样才能得到它的错误状态?基本上我将使用'source'命令从另一个脚本中获取此脚本。因此,如果源的脚本有任何语法错误,我想在控制台中显示它。有没有办法获得这种状态?在shell中我用语法错误执行了脚本,我收到了像'missing ['这样的错误,但是当我执行echo $?它返回0作为状态时,这是行为吗?如果脚本有一些语法错误,我怎样才能获得状态?

1 个答案:

答案 0 :(得分:2)

您可以在采购之前使用-n选项检查shell脚本的语法:

bash -n somescript  # Works also for sh, ksh, zsh et al.

会告诉你somescript在语法上是否正常而没有实际运行它。在一个程序中:

if bash -n somescript; then
   . somescript
else
   printf '%s\n' "Uh-oh, somescript is not syntactically correct." >&2
fi