首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >和/或命令组中的列表,它以异步操作符或"{ cmd1 & cmd2;} &“结束。

和/或命令组中的列表,它以异步操作符或"{ cmd1 & cmd2;} &“结束。
EN

Stack Overflow用户
提问于 2015-08-11 15:48:11
回答 1查看 42关注 0票数 1

我想在~/.xinitrc中并行执行许多命令。

POSIX sh语法很容易归档:

代码语言:javascript
复制
cmd & cmd & ...

但其中一些具有依赖关系,并按顺序运行,但每个序列并行运行。

我带着:

代码语言:javascript
复制
{ cmd1 && cmd2; } &
cmd3 &
{ cmd4 || cmd5; } &

cmd1cmd2是否在从原来sh分叉的单sh进程中执行?

我理解POSIX对以下每一项的说明:

  • && -和列表
  • & -异步列表
  • { ...; } -在当前环境中执行的复合列表

但是,当这些语法单元一起使用时,不能推断执行语义。

(cmd)等价于{cmd;} &吗?

(...)语法(子subshell)是否帮助我存档我的目标?

EN

回答 1

Stack Overflow用户

发布于 2015-08-11 16:18:18

你的假设是正确的。

代码语言:javascript
复制
{ cmd1 && cmd2; } &

分叉一个新的shell,其中cmd1运行到完成,如果成功,则接着运行cmd2(cmd)启动一个新的子shell,但在继续之前等待该shell完成。{ ...; } &( ... ) &是相似的;我不记得第二个进程是为每个(...)&启动一个额外的进程,还是只在后台运行(...)的新进程。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31946374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档