【发布时间】:2012-05-30 21:12:35
【问题描述】:
我是shell新手,刚知道use(command)会创建一个新的子shell并执行命令,所以我尝试打印父shell和子shell的pid:
#!/bin/bash
echo $$
echo "`echo $$`"
sleep 4
var=$(echo $$;sleep 4)
echo $var
但答案是:
$./test.sh
9098
9098
9098
我的问题是:
- 为什么只有三个回声打印?我的代码中有 4 个回显。
- 为什么三个 pid 相同? subshell 的 pid 显然和他父亲的不一样。
非常感谢您的回答:)
【问题讨论】: