分页: 1 / 1

这段话是啥意思?

发表于 : 2006-08-16 13:56
5451vs5451
42 # 一般来说
43 (
44 : | x=x
45 # 看上去是启动了一个子shell
46 : | ( x=x )
47 # 但
48 x=x < <(:)
49 # 实际上不是
50 )

原文http://www.linuxsir.org/main/doc/abs/ab ... s-sub.html

Re: 这段话是啥意思?

发表于 : 2006-08-16 22:38
laborer
5451vs5451 写了:42 # 一般来说
43 (
44 : | x=x
45 # 看上去是启动了一个子shell
46 : | ( x=x )
47 # 但
48 x=x < <(:)
49 # 实际上不是
50 )

原文http://www.linuxsir.org/main/doc/abs/ab ... s-sub.html
看了一下上下文,本身这个例子什么都没做,只是演示一下用管道和process substitution的细微差别

这里“:”是bash的一个buildin命令,功能和true是一样的,直接return 0。执行

代码: 全选

true | x=asdfasdf
之后,echo $x,可以看到x并没有被赋值,也就是说x=asdfasdf是在一个子shell中执行的,并不会影响父shell中变量x。也就是说这句话和

代码: 全选

true | ( x=asdfasdf )
是等同的。但用process substitution就不一样了,执行

代码: 全选

x=asdfasdf < <(true)
之后,显示x就变成了“asdfasdf”。

发表于 : 2006-08-16 23:23
5451vs5451
原来是这个意思。谢谢laborer

process substitution翻成中文怎么说?进程替换?