Especificación de parameters de línea de command separados por comas basados ​​en líneas de files de text

Quiero ejecutar un command como:

command argument --parameter=param1,param2,param3 

donde param1, param2, param3 puede ser cualquier cantidad de parameters provenientes de un file params.txt, cada uno en una línea.

Puedo crear ver una list correcta de parameters con

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

Pero tratando

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

y sus variantes obvias fallan, probablemente porque no puedo hacer que algo como esto funcione:

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

Cualquier ayuda muy apreciada.

Qué pasa

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

Veamos este command de la pregunta:

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

Esto ejecuta el command command argument --parameter=$(cat params.txt) y canaliza su salida a tr " " "," . Eso no es lo que necesitabas.

Tratar:

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

Aquí, echo $(cat params.txt) hace que la split de palabras se realice en los contenidos de params.txt . Esto da como resultado que todos los parameters estén separados por espacios. Entonces, tr " " "," reemplaza los espacios con comas.

Tenga en count que al usar cat en lo anterior mantenemos la compatibilidad con POSIX. Esto significa, por ejemplo, que este command funcionará bajo el shell pnetworkingeterminado, /bin/sh , en Ubuntu y Debian y sistemas similares.