linux - 脚本从上次运行中获取参数

标签 linux bash asynchronous docker alpine-linux

我正在使用运行 Alpine Linux 的 docker 容器。它异步运行一些 bash 脚本

bash myscript.sh $param1 $param2 &>/dev/null &disown

第一次运行时,它似乎没有执行任何应该写入某个数据库的操作,但是当我第二次运行时

bash myscript.sh $param3 $param4 &>/dev/null &disown

它确实有效,但它使用之前运行的参数,即 param1 和 param2。

没有 &>/dev/null &disown 它从第一次就可以正常工作

有人可以向我解释一下这种行为吗

最佳答案

解决方案是添加延迟

bash myscript.sh $param1 $param2 &>/dev/null &disown
sleep 1

可能是因为它异步,脚本完成得太快 但我想听听更深入的解释

关于linux - 脚本从上次运行中获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43994304/

相关文章:

java Runtime.getRuntime().exec() 无法运行命令

linux - 无法在@INC 中找到 Spreadsheet/ParseExcel.pm,尽管它似乎已安装

bash - 在从 "find | xargs"运行的命令中使用参数扩展来防止输出覆盖

javascript - for each 循环中的异步代码

javascript - Node.js 中循环异步函数内 undefined variable

php - php 中带有超时参数的 exec() ?

linux - 设置 screen 内 vim 的高度

regex - bash 中的正则表达式不贪婪

python - 在 python 中轻松创建 bash 脚本

angular - 如果我更改可观察对象,异步管道是否会自动取消订阅可观察对象?