如何在脚本中运行“独立”命令

时间:2011-11-23 01:42:32

标签: bash shell

我有一系列“命令”(实际上是对bash shell函数的调用)来计算一些统计信息。每个命令通常与其他命令无关,有些命令可能比有时需要更多时间。

到目前为止,我有一个调用这些命令的bash脚本,一个接一个。如果某个命令花费太多时间,并且我按c + C它,整个脚本就会死掉(正如预期的那样)。 我发现如果我在括号内调用它们(它们会分配shell),比如( command1 ) ; ( command2 ),并且在命令1运行时我按c + + C,那么command2将在没有问题的情况下运行。

以上适用,我在终端直接试用。但是,如果我在脚本中执行此操作,则无效。我想ctrl + C会转到整个脚本,并终止它。

有什么方法可以帮助我想要的东西吗? bash shell的用法并不是那么严格,所以我很高兴在python中说一个解决方案,例如bash中的一个是首选。

编辑:我希望能够以某种方式“取消”一些命令,其余的后续执行(一次一个)没有问题。不要并行运行命令。

2 个答案:

答案 0 :(得分:3)

如果您只是捕获SIGINT,您想要的是什么。例如:

#!/bin/sh

trap : 2

cmd1
cmd2
cmd3

当你点击^ C时,它会将SIGINT发送到shell脚本和当前正在运行的进程(cmd1,cmd2。或cmd3)。 cmd将会死掉,shell脚本将启动下一个cmd。

答案 1 :(得分:1)