小编Zaz*_*aza的帖子

运行前完整的 bash 脚本检查

尝试在 bash 脚本中实现自语法检查,test.sh 以便在执行脚本之前运行语法检查。

error_exit()
{
        echo -e "$1" 1>&2
        exit 1
}
bash -n "$(basename $BASH_SOURCE)"
RESULT=$?
if [ $RESULT == 0 ]; then
  echo "[OK] Test pass"
else
  error_exit "Something is not right :( \n check the sytntax"
fi
starting-script
Run Code Online (Sandbox Code Playgroud)

bash -n,bash -x如果有一些严重的语法错误但小错误如:

echo "somthing" && sleep5&&
./test.sh: line 14: sleep5: command not found
Run Code Online (Sandbox Code Playgroud)

被忽略...

有什么方法可以处理完整的语法检查,并且可以在某种“沙箱模式”/“模拟模式”下运行脚本以捕获所有可能的错误,并返回错误(如果有)?

编辑 在脚本必须将脚本的某些部分复制到远程服务器的情况下,例如在数百个从属(受监控服务器)上安装 nagios 的脚本等。不幸的是,文本复制并不总是顺利进行,错误可能是由自动将脚本复制为文本时发生错误,如果检测到任何错误,请务必检查并结束脚本。

linux bash syntax

0
推荐指数
1
解决办法
295
查看次数

标签 统计

bash ×1

linux ×1

syntax ×1