2

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

4

1 回答 1

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
于 2012-10-09T10:01:17.957 回答