如何在一个分开的shell中执行命令

如何在一个分开的shell中执行命令

要在分开的shell中执行一组命令,一种最简单的途径就是使用括号:
[code:1](list;)[/code:1]
list是将要在分开的shell(称为子shell)中执行的命令,list中的命令对工作目录(通过调用cd命令)或环境变量的修改不会影响到调用list的脚本。
作为一个例子,下面的函数可以确定一个目录的绝对路径,而不用改变当前的工作路径:
[code:1]abspath () { ( cd "$1" && pwd ; ) ; }[/code:1]
{}则是在当前shell中执行命令
看下面例子:
[code:1]
zhyfly: ~$ a=1;echo $a;( a=2; );echo $a
1
1
zhyfly: ~$ a=1;echo $a;{ a=2; };echo $a
1
2
[/code:1]