根据文本文件行指定逗号分隔的命令行参数

根据文本文件行指定逗号分隔的命令行参数

我想运行如下命令:

command argument --parameter=param1,param2,param3

其中 param1、param2、param3 可以是来自文件 params.txt 的任意数量的参数,每个参数占一行。

我可以创建查看正确的参数列表

echo $(cat common.modules) | tr " " ","

但正在努力

command argument --parameter=$(cat params.txt) | tr " " ","

它的明显变体失败了,可能是因为我无法让这样的东西工作:

echo $($(cat params.txt) | tr " " ",")

非常感谢任何帮助。

答案1

让我们看看问题中的这个命令:

command argument --parameter=$(cat params.txt) | tr " " ","

这将运行命令command argument --parameter=$(cat params.txt)并将其输出通过管道传输到tr " " ",".那不是你所需要的。

尝试:

command argument --parameter="$(echo $(cat params.txt) | tr " " "," )"

此处,echo $(cat params.txt)导致对 的内容进行分词params.txt。这导致所有参数都以空格分隔。然后,tr " " ","将空格替换为逗号。

cat请注意,通过在上面使用我们可以保持 POSIX 兼容性。例如,这意味着该命令将在/bin/shUbuntu 和 Debian 以及类似系统上的默认 shell 下运行。

答案2

关于什么

command argument --parameter=$(tr '\n' ',' < params.txt)

相关内容