我想并行运行多个命令,但我不知道为什么下面的代码片段不起作用。
#!/bin/bash
( ping 8.8.8.8 )
( ping 192.168.0.1 )
它完全忽略第二个 ping 命令。为什么会这样?
编辑:好的,现在我知道你可以通过执行并行运行它们&
。
ping 8.8.8.8 & ping 192.168.0.1
但为什么上面的代码片段不起作用呢?
答案1
默认情况下,子 shell 不会分叉,您还必须使用&
将其发送到后台来执行第二个子 shell,而无需等待第一个子 shell 结束。
例如
ping 8.8.8.8 & ping 192.168.0.1