bash - 为什么(cd&& sleep 5000)启动第二个进程

时间:2013-07-17 12:35:21

标签: bash sleep pid

我有这个脚本test.sh

#!/bin/bash
( cd . && sleep 5000 )

我执行./test.sh & 然后运行ps lax | grep test.sh

我现在有2个进程正在运行...

0  1000  6883  6600  20   0  10600  1332 -      S    pts/2      0:00 /bin/bash ./test.sh
1  1000  6884  6883  20   0  10604   704 -      S    pts/2      0:00 /bin/bash ./test.sh
  • 为什么我有两个进程在运行?第二个进程来自哪里?
  • 如果从命令中删除cd "..",为什么我没有两个进程?

感谢您的任何解释,我只是没有得到它,我认为我在这里缺乏一些基础......或者这是一些vodoo? ;)

2 个答案:

答案 0 :(得分:7)

括号内的

Grouping a series of bash commands将在子shell中执行它们。

答案 1 :(得分:0)

将两个命令一起写入可能会给终端检测命令带来一些困难。也许你可以把它分成2个命令。

cd ...

sleep 5000