bash脚本使用参数调用另一个程序

bash脚本使用参数调用另一个程序,bash,Bash,我编写了一个bash脚本,它通过传递一个参数来调用另一个脚本。本例中的参数是一个包含几行的文件 我是这样做的: #! /bin/bash `python script.py -i input.txt /path/to/somefile` python script.py -i input.txt /path/to/somefile 现在,input.txt包含如下行: something 1 something 2 something 3 这里的问题是,每一行input.txt都由bas

我编写了一个bash脚本,它通过传递一个参数来调用另一个脚本。本例中的参数是一个包含几行的文件

我是这样做的:

#! /bin/bash

`python script.py -i input.txt /path/to/somefile`
python script.py -i input.txt /path/to/somefile
现在,input.txt包含如下行:

something 1
something 2
something 3
这里的问题是,每一行input.txt都由bash脚本作为程序本身进行计算,而不是像传递给script.py程序那样进行计算

因此,script.py程序需要一个输入为3行的文件,如上图所示,但会收到一些其他输入(计算某物1、某物2等的结果)

如何将此文件作为参数传递给script.py

如果在bash脚本外部调用script.py,如下所示:

#! /bin/bash

`python script.py -i input.txt /path/to/somefile`
python script.py -i input.txt /path/to/somefile

它工作得很好。script.py一次从input.txt读取一行并对其进行操作。

删除python命令周围的反勾号。。。 我认为您误解了所发生的情况,python输出被评估为一个命令,而不是
input.txt


反勾号执行命令替换,与
$(
..
相同。例如讨论,以及。通常它被用作命令的参数,比如
ls-l$(cat filelist.txt)
,但它也可以作为整个命令使用。尽管如果您盲目地执行某些程序的任何输出,您最好确保您相信输出是正确的、可信的,并且没有任何允许shell命令注入的安全漏洞(阅读:don't do;-)…

谢谢。我明白了:)只是好奇,为什么你认为bash中需要反勾?Perl背景?