帮下:shell 重定向

帮下:shell 重定向

shell重定向  中
1.
( ) 将 command group 置于 sub-shell 去执行,也称 nested sub-shell,它有一点非常重要的特性是:继承父shell的Standard input, output, and error plus any other open file descriptors。
这句话啥意思 看不懂  明白的大虾解释下
2.
(ls you no 2>&1;ls yes 2>&1) 2>&1|egrep \* >file
(ls you no 2>&1;ls yes 2>&1)|egrep \* >file
(ls you no;ls yes) 2>&1|egrep \* >file
这个也不是很明白  看不很懂
3.在Beginning Linux Programming 一书的SHELL部分 使用引号的讲解中有一句话
“字符串通常都被放在双引号中,以防他们被空白字符分开,但允许扩展$字符”
这句的允许扩展$字符  怎么理解 它指的是什么?


不要说我咬文嚼字哦。


再补充个 set  env  export  这几个到底有什么区别  百度了好多网页  都没搞明白

晕  都没人理   第一个问题 自己弄明白了
env么是个外部命令,也可以打印出当前环境变量,也可让一个进程运行在不同的环境中而不改变当前环境,比如env LANG=C vim,启动一个运行在C locale下的vim。
export是bash (还有其它bourne shell一类的shell)的内建命令,导出一个变量,使之成为环境变量,可以被子进程继承。
set也是内建命令,是用来改变shell变量的,调节shell的一些功能,比如set -o emacs,使用emacs风格的行编辑,set -o vim则用vim风格的,这个内容就比较多了,可以自己看文档。
所有的问题都已经搞明白了
谢谢楼上的讲解!