在同一命令中重复使用不同值的标志

在同一命令中重复使用不同值的标志

我会尽量保持简单。我使用sed命令编辑流的结果如下:

filename_1  
filename_2  
.  
.  
filename_n  

现在,根据先前结果中的文件数量,我想在 shell 中执行命令,如下所示。

some_command --foo "filname_1" --foo "filename_2" --foo "filename_n" remaining_some_command

其中 --foo 是命令之间的标志,filename_1...filename_n 是其值,具体取决于sed.

在shell中应该是可以的。但如何呢?

答案1

因此,您有一些命令可以生成文件名列表,每行一个,并且您想为生成的每一行生成--foofilename作为命令行参数?

例如,使用printfecho打印一些行并获取参数:

#!/bin/bash
args=()
while IFS= read -r filename; do
    args+=(--foo "$filename")
done < <(printf "test1\ntest2\n")
echo test command "${args[@]}"

打印printftest1test2echo运行为echo --foo test1 --foo test2

相关内容