我正在尝试运行使用两个不同文件的程序:
Program -command1 $file1 -command2 $file2
我已成功将bash循环用于一个文件,但当我将其用作:
时for file in *.ext
do
Program -command1 $file -command2 $file
done
它为两个命令运行相同的一个文件,循环到第二个文件并为该文件执行相同的操作。
我需要程序在一个程序运行下为每个命令单独运行两个文件。
答案 0 :(得分:0)
虚拟代码,使用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