如何使用Unix将所有行作为参数传递给脚本

Jef*_*eff 1 unix bash cat

我有一个名为pids.txt的文件,其中包含行,如下所示:

123
456
789
Run Code Online (Sandbox Code Playgroud)

然后,我写了一个Python脚本,它对每一行做了一些事情.Python脚本运行如下:

my_script.py 123 456 789 -a "something here" -b "something else"
Run Code Online (Sandbox Code Playgroud)

我被困在我想要运行Unix命令的部分,将pids.txt的输出传递给my_script.py.我想你必须和猫做点什么吗?

(这不起作用)

cat pids.txt | ./myscript.py -a "something here" -b "something else"
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Ada*_*man 5

你可以使用$(command)构造(相当于反引号:`command`):

./myscript.py $(cat pids.txt) -a "something here" -b "something else"
Run Code Online (Sandbox Code Playgroud)

构造$(command)运行命令并替换放置构造的命令的标准输出.

Bash还为您提供$(< file)构造:

./myscript.py $(< pids.txt) -a "something here" -b "something else"
Run Code Online (Sandbox Code Playgroud)

这将读取pids.txt文件并将其内容替换为$(< ...)构造.(感谢这一次去格伦杰克曼)