代码之家  ›  专栏  ›  技术社区  ›  Nick Vanderbilt

xargs i已经有完整的命令集

  •  0
  • Nick Vanderbilt  · 技术社区  · 15 年前

    我有一个这样的文件。

    rm a.txt
    mkdir foo
    cp a.doc docs
    

    我习惯于xargs,但下面的命令不做任何事情。

    cat commands.txt | xargs -l1
    
    4 回复  |  直到 15 年前
        1
  •  1
  •   ghostdog74    15 年前

    你做错了!如果您的文件都是shell命令,请将其视为shell脚本。

    #!/bin/bash
    rm a.txt
    mkdir foo
    cp a.doc docs
    

    然后在命令行上, chmod u+x commands.txt

    ./commands.txt
    

    shell脚本的“defacto”命名约定以扩展名结尾 .sh 尽管它可以是任何东西。因此,请尝试将脚本命名为“.sh”扩展名

        2
  •  0
  •   LenW    15 年前

    Erm:

    $mv commands.txt命令.sh

    $chmod+x命令.sh

    $/命令

        3
  •  0
  •   glenn jackman    15 年前

    如果不需要使其可执行,请在当前shell中对其进行源代码:

    巴什/ksh/…: . commands.txt

    CSH/… source commands.txt

        4
  •  -1
  •   Ole Tange    15 年前

    如果命令不在文件中,而是来自程序的输出,则可以使用GNU并行 http://www.gnu.org/software/parallel/ :

    cat commands.txt | parallel -j1
    

    如果命令可以并行运行(即不依赖于每个人来完成),您甚至可以执行以下操作:

    cat commands.txt | parallel