根據文字檔案行指定逗號分隔的命令列參數

根據文字檔案行指定逗號分隔的命令列參數

我想運行如下命令:

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)

相關內容