【求助】问一个关于{}与()的问题
发表于 : 2010-04-08 12:41
{}与()的意义:
测试脚本testshellpid
执行命令:
2条命令的输出
我的问题是,使用{}来执行的时候,为什么脚本中的pid与当前pid不同呢?另外,为什么使用{}或者()执行,$a都是未定义的,“./testshellpid;echo $a”不是在同一个shell中执行的吗?
代码: 全选
(cmd1;cmd2;...;cmdN)#在一个子shell里执行一组命令
{cmd1;cmd2;...;cmdN}# 在当前shell里执行一组命令
代码: 全选
!/bin/bash
echo $$
a=1
代码: 全选
$ echo $$;( ./testshellpid;echo $a; )
与
$ echo $$;{ ./testshellpid;echo $a; }
代码: 全选
6469 #当前shell的pid
xxxx #脚本中的pid,不等于6469
[空] #$a未定义