我想在bash中运行多个命令,其参数是文件中的每一行例如:
$ cat argsFile.txt argtype1 argtype2 argtype3
我想运行与文件中的每一行相对应的3个bash命令
$ python myscript.py argtype1 $ python myscript.py argtype2 $ python myscript.py argtype3
我如何在bash中的1-2行中执行此操作?
xxhby3vn1#
我认为这可以通过以下方式充分实现:
while read -r args; do <command> "${args}"; done < inputfile
于是它变成了:
while read -r args; do python myscript.py "${args}"; done < argsFile.txt
您可以在命令前写一个echo,以确保它运行您想要的内容:
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
u1ehiz5o2#
它是一个使用xargs的单行程序,使用输入文件的每一行来运行命令行:
xargs
xargs -n 1 python myscript.py < argsFile.txt
请注意,如果输入文件非常大,并且您希望并行运行这些命令,则可以添加xargs的-P 0选项:
-P 0
xargs -P 0 -n 1 python myscript.py < argsFile.txt
2条答案
按热度按时间xxhby3vn1#
我认为这可以通过以下方式充分实现:
于是它变成了:
您可以在命令前写一个
echo
,以确保它运行您想要的内容:u1ehiz5o2#
它是一个使用
xargs
的单行程序,使用输入文件的每一行来运行命令行:请注意,如果输入文件非常大,并且您希望并行运行这些命令,则可以添加
xargs
的-P 0
选项: