linux 如何运行多个bash命令对应于从一个文件中输入的每一行?

rjee0c15  于 2022-11-02  发布在  Linux
关注(0)|答案(2)|浏览(119)

我想在bash中运行多个命令,其参数是文件中的每一行
例如:

$ cat argsFile.txt
argtype1
argtype2
argtype3

我想运行与文件中的每一行相对应的3个bash命令

$ python myscript.py argtype1
$ python myscript.py argtype2
$ python myscript.py argtype3

我如何在bash中的1-2行中执行此操作?

xxhby3vn

xxhby3vn1#

我认为这可以通过以下方式充分实现:

while read -r args; do <command> "${args}"; done < inputfile

于是它变成了:

while read -r args; do python myscript.py "${args}"; done < argsFile.txt

您可以在命令前写一个echo,以确保它运行您想要的内容:

while read -r args; do echo python myscript.py "${args}"; done < argsFile.txt
python myscript.py argtype1
python myscript.py argtype2
python myscript.py argtype3
u1ehiz5o

u1ehiz5o2#

它是一个使用xargs的单行程序,使用输入文件的每一行来运行命令行:

xargs -n 1 python myscript.py < argsFile.txt

请注意,如果输入文件非常大,并且您希望并行运行这些命令,则可以添加xargs-P 0选项:

xargs -P 0 -n 1 python myscript.py < argsFile.txt

相关问题