![如何将条件命令附加到已经运行的命令?](https://linux22.com/image/1265436/%E5%A6%82%E4%BD%95%E5%B0%86%E6%9D%A1%E4%BB%B6%E5%91%BD%E4%BB%A4%E9%99%84%E5%8A%A0%E5%88%B0%E5%B7%B2%E7%BB%8F%E8%BF%90%E8%A1%8C%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
假设我有三个命令,如下所示:
a && b && c
这将在 a 完成后以及完成c
后运行 b b
。
如果我这样做会怎么样:
a && b
在运行时,我想将 c 作为条件命令附加。可以做到吗?
答案1
我会这样做:
a && b
- 按下
ctrl-Z
暂停当前管道 bg 1
在后台运行wait %1 && c
wait
等待指定的作业完成,并返回其结果状态,以便上述行为就像a && b && c
那样。
您还可以定义别名或函数,例如alias bgwait='bg 1 && wait %1'
。然后,按下后ctrl-Z
,您只需输入bgwait && c
。支持多个作业留给读者练习。
答案2
最后一次操作的结果存储在中$?
。0 表示没有发生错误,其他任何结果都是问题。
你可以像这样使用它
if [ $? -eq 0 ]; then c; fi
使其成为您的一个功能或类似功能.bash_profile
,这样您就可以更舒适地运行它。
答案3
对于 NT,您可以在当前命令运行时键入新命令并按 ENTER。
例如,
c:\blah>dir /s
其中 blah 足够大,以便您有时间在内容滚动到屏幕上时进行键入。
现在所有这些东西都在屏幕上滚动
当它出现时,输入 mem
然后在 dir /s 完成后,mem 将运行。