如何连接两个命令的输出?

时间:2014-11-04 21:56:34

标签: bash unix

如何连接pwdls的输出并将其添加到名为f1的文件中?这不起作用:

pwd, ls > f1

3 个答案:

答案 0 :(得分:8)

使用复合命令:

{ pwd; ls; } > f1

答案 1 :(得分:1)

保存一个分号和2个空格,与@chepner相比需要花费一个过程: - )

(pwd;ls) > f1

答案 2 :(得分:1)

也许您正在寻找更难做的事情,但文件追加是一个简单的解决方案:

pwd >> f1
ls >> f1

如果你更喜欢chepner或者Mark Setchell的回答,这里有一个解释:

  1. 您可以使用带括号的子shell:

    ( pwd; ls; ) > f1
    
  2. 或子命令:

    { pwd; ls; } > f1
    
  3. 使用subshel​​l,父shell将无法访问子环境。由于创建了新的孤立进程,因此不会保留变量。

    并且子命令初始化变量保留并可与父级一起使用。

    两者都有父母环境。

    参考: