【问题标题】:run bash loop for two files in two commands of one program [duplicate]在一个程序的两个命令中为两个文件运行bash循环[重复]
【发布时间】:2018-08-19 08:21:00
【问题描述】:

我正在尝试运行一个使用两个不同文件的程序:

Program -command1 $file1 -command2 $file2

我已经成功地为一个文件使用了 bash 循环,但是当我将它用作:

for file in *.ext
do
    Program -command1 $file -command2 $file
done

它为两个命令运行同一个文件,循环到第二个文件并为那个文件做同样的事情。

我需要程序在一个程序运行下为每个命令单独运行两个文件。

【问题讨论】:

    标签: bash shell loops unix


    【解决方案1】:

    虚拟代码,使用printf 输出三个目录名称,并使用xargs 将这些名称提供给Program,(实际上是echo,因此结果可见):

    printf '%s\n' foo bar baz | 
    xargs -I '{}' echo Program -command1 '{}'/Type1.ext -command2 '{}'/Type2.ext
    

    输出:

    Program -command1 foo/Type1.ext -command2 foo/Type2.ext
    Program -command1 bar/Type1.ext -command2 bar/Type2.ext
    Program -command1 baz/Type1.ext -command2 baz/Type2.ext
    

    要实际运行 Program,请将 "foo bar baz 替换为实际目录的名称,并省略 echo:

    printf '%s\n' ....dir names go here... | 
    xargs -I '{}' Program -command1 '{}'/Type1.ext -command2 '{}'/Type2.ext
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2013-09-13
      • 1970-01-01
      相关资源
      最近更新 更多