Abh*_*pta 14 command-line bash job-control
假设有 2 个任务t1,t2它们可以以串行方式执行,如下所示:
t1 ; t2
# OR
t1 && t2
Run Code Online (Sandbox Code Playgroud)
现在假设我忘记跑步t2并且t1已经在跑步;我可以添加t2到管道中以便在t1完成后执行吗?
des*_*ert 19
是的你可以:
fg或%,将您想要的内容添加到列表中并执行它,例如:
fg ; systemctl suspend # or
% ; systemctl suspendRun Code Online (Sandbox Code Playgroud)
由于fg返回它恢复的作业的返回值,列出操作符 like&&并按||预期工作:
fg && echo "Finished successfully!" # or
% && echo "Finished successfully!"Run Code Online (Sandbox Code Playgroud)man bash/JOB CONTROL关于挂起字符的说明:
键入 暂停 字符(通常
^Z, Control- Z),而一个进程正在运行的原因,要停止的过程,并将控制返回bash。(…) 然后用户可以操纵这个作业的状态,使用bg命令在后台fg继续它,在前台继续它的kill命令,或杀死它的命令。A^Z立即生效,并具有导致挂起输出和提前输入被丢弃的额外副作用。
fg在man bash/SHELL BUILTIN COMMANDS 中解释:
fg [ jobspec ]在前台
恢复jobspec,并使其成为当前作业。如果jobspec不存在,则使用 shell 的当前作业概念。返回值是放置到前台的命令的值,或者如果在禁用作业控制时运行或在启用作业控制的情况下运行时失败,如果 jobspec 未指定有效作业或jobspec指定在没有作业控制的情况下启动的作业.
man bash关于作业控制的进一步阅读(除了):
| 归档时间: |
|
| 查看次数: |
969 次 |
| 最近记录: |