Bash重定向

Bash重定向,bash,sh,Bash,Sh,如果我的理解是正确的,请有人解释一下bash的以下行为: echo abcd>abc def 回波abcd将其打印到std输出流,但由于存在“>”它被重定向到文件abc def如何作为字符串存储在文件abc中,而不是存储在包含字符串abcd的另一个文件中 echo abcd>abc>def 这将导致字符串abcd存储在文件def中,而文件abc保持为空。怎么做 谢谢。在此命令中: echo abcd > abc def foo bar echo abcd > abc >

如果我的理解是正确的,请有人解释一下bash的以下行为:

  • echo abcd>abc def

    回波abcd将其打印到std输出流,但由于存在“>”它被重定向到文件abc def如何作为字符串存储在文件abc中,而不是存储在包含字符串abcd的另一个文件中

  • echo abcd>abc>def

    这将导致字符串abcd存储在文件def中,而文件abc保持为空。怎么做

  • 谢谢。

    在此命令中:

    echo abcd > abc def foo bar
    
    echo abcd > abc > def > xyz
    
    只有
    之后的参数用于输出文件名,其余参数用于
    echo
    。因此你得到:

    cat abc
    abcd def foo bar
    
    然后在此命令中:

    echo abcd > abc def foo bar
    
    echo abcd > abc > def > xyz
    
    只有
    之后的最后一个文件名将实际显示输出内容,其余文件名将为空:

    cat xyz
    abcd
    cat def
    cat abc
    
    要将输出存储在多个输出文件中,请像这样使用
    tee
    (使用抑制的标准输出):

    然后检查内容:

    cat abc
    Mon Dec  7 07:34:01 EST 2015
    cat def
    Mon Dec  7 07:34:01 EST 2015
    cat xyz
    Mon Dec  7 07:34:01 EST 2015