Bash脚本退出清理

无效指针

我有一个bash脚本,它可以转发到其他Shell脚本和python脚本的混合。如果这些脚本中的任何一个失败,或者用户取消了该脚本(CTRL + C),则在所有情况下我都希望执行一些清理。

许多用户可以在同一OS用户下通过SSH进入linux系统并启动构建。这是我们的构建服务器。该脚本需要编写一个“ build.lock”文件或任何东西,无论何时该脚本以任何方式退出(错误,用户退出等),都将清除该文件。如果脚本在第一个脚本执行完毕之前再次运行,则应检查“ build.lock”文件并拒绝继续。

我假设这是防止脚本并行执行的最佳方法。我们在Ubuntu上使用Bash。下面是脚本本身:

#!/bin/bash -e
pushd build-server-scripts > /dev/null
./build.sh "$@"
popd > /dev/null

我的想法是解决这个问题的好方法吗?如果是这样,实施的方式是什么?如果没有,那么每个人还会建议其他哪些想法?我对Bash脚本缺乏经验,因此可以边学边学。

Pankrates

如果我正确理解了您的问题,则可能需要研究bash的问题。trap您可以定义一个在脚本退出时调用的陷阱函数

# Set up a cleanup function to be triggered upon script exit
__cleanup ()
{
    [[ -f "build.lock" ]] && rm "build.lock"
}

trap __cleanup EXIT

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash脚本,清理步骤。

来自分类Dev

从使用$()的bash脚本退出

来自分类Dev

bash脚本中的退出状态

来自分类Dev

Bash在脚本中退出sudo

来自分类Dev

无法正确退出bash脚本

来自分类Dev

Bash脚本清理旧的备份文件

来自分类Dev

如何遍历目录并清理bash脚本

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

确保即使子脚本退出,父bash脚本也不会退出

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

内部脚本失败后在外部Bash脚本中清理

来自分类Dev

从bash脚本退出,但保持进程运行

来自分类Dev

Bash脚本不会循环退出

来自分类Dev

Bash退出代码状态脚本错误

来自分类Dev

从bash调用R脚本时退出代码

来自分类Dev

从子shell退出整个bash脚本

来自分类Dev

采购Bash脚本-返回错误,而不是退出?

来自分类Dev

运行bash脚本后退出终端

来自分类Dev

错误Bash iOS上的脚本未退出

来自分类Dev

bash脚本末尾的退出代码

来自分类Dev

如何阻止bash脚本完全退出窗口

来自分类Dev

在后台运行Bash脚本并退出终端

来自分类Dev

从bash脚本退出,但保持进程运行

来自分类Dev

如何从bash脚本中退出ssh?

来自分类Dev

Bash脚本循环返回而不是退出

来自分类Dev

在bash脚本中从curl获取退出代码

来自分类Dev

Bash脚本在命令失败时退出(sshpass)

来自分类Dev

终止从退出的bash脚本提交的作业

来自分类Dev

在while循环中退出bash脚本