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