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

时间:2011-11-16 23:49:32

标签: bash unix cat

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

123
456
789

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

my_script.py 123 456 789 -a "something here" -b "something else"

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

(这不起作用)

cat pids.txt | ./myscript.py -a "something here" -b "something else"

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

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

./myscript.py $(cat pids.txt) -a "something here" -b "something else"

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

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

./myscript.py $(< pids.txt) -a "something here" -b "something else"

这将读取pids.txt文件并将其内容替换为$(< ...)构造。 (感谢这一次去glenn jackman