linux – 当我在Bash脚本中使用`\u0026`函数时会发生什么?

linux – 当我在Bash脚本中使用`\u0026`函数时会发生什么?,第1张

概述我正在用 shell脚本调试一个奇怪的东西,想知道我是否误解了 Bash的“fork”(&)是如何工作的,也许是因为我通常在单个命令中通过终端使用它,例如: [~me]$someExecutable & 现在,在shell脚本中: foo() { echo "logic"}bar() { echo "idic"}baz() { echo "katra"}foo 我正在用 shell脚本调试一个奇怪的东西,想知道我是否误解了 Bash的“fork”(&)是如何工作的,也许是因为我通常在单个命令中通过终端使用它,例如:

[~me]$someExecutable &

现在,在shell脚本中:

foo() {   echo "logic"}bar() {   echo "IDic"}baz() {   echo "katra"}foo &barbaz

我的目的是异步调用函数foo,然后让脚本的其余部分继续在原始进程上下文中执行.

当我执行这个示例脚本时,我得到了预期的输出:

logicIDickatra

(也就是说,只有一个明显的调用bar和baz;我完全没有被三行输出的相对顺序所困扰,我理解这可能会有所不同)

但我可能误解了输出和脚本本身.如果是这样,那肯定会解释我在实际代码中看到的奇怪之处,并且让我不必再深入挖掘.

是否有可能在子进程中调用foo之后,forked shell脚本会继续吗?这意味着我的shell脚本的其余部分将被执行两次?

当我使用&像这样在Bash脚本中?

解决方法 &符号仅在您的示例中分配对foo()的调用.它不是分支整个脚本.只有foo()在一个单独的线程中运行,当foo()结束时它会退出. bar()和baz()继续在同一个线程中运行 总结

以上是内存溢出为你收集整理的linux – 当我在Bash脚本中使用`\u0026`函数时会发生什么?全部内容,希望文章能够帮你解决linux – 当我在Bash脚本中使用`\u0026`函数时会发生什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1026640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存