我是shell的新手,刚学习到使用 (command) 命令将创建一个新的子shell并执行命令,因此我尝试打印父shell和子shell的pid:
#!/bin/bash
echo $$
echo "`echo $$`"
sleep 4
var=$(echo $$;sleep 4)
echo $var
但是答案是:
$./test.sh
9098
9098
9098
我的问题是:
- 为什么只有三个echo输出?我的代码中有4个echo。
- 为什么这三个pid相同?子shell的pid显然与父进程不同。
非常感谢您的回答:)