关于在()中运行子shell的疑问(重定向相关)

这样一条命令date >桌面/new,很容易理解,命令会把输出日期重定向打印到桌面的new文件上,但是我又输入了一个(date)  >桌面/new命令用来测试。我想的是,这个date会在子shell中运行,在子shell中date的输出并没有被重定向,所以date应该是在子shell的屏幕上打印日期,然后返回父shell,返回之后会碰到>桌面/new命令。不管在这之后会怎么样,我就输入这条命令想测试下。没想到它竟然跟不加括号运行一样。一样是把输出重定向到了new文件。有点想不通为什么。然后我又用了一条(date >桌面/son)  >桌面/new测试。结果发现输出被重定向到son,同时new的内容也被清空了。我再用date  >桌面/son  >桌面/new测试(就是去掉上一条命令的括号)。结果发现输出日期打印到了new  上,son文件的内容被清空了。我用的是bash.不知道哪位大侠能解释下。

作者: leanas   发布时间: 2011-06-09

我自己知道了,

作者: leanas   发布时间: 2011-06-11

下午我也试试~~~~~~~~~·

作者: gogo11   发布时间: 2011-06-11