如何用1-2行Bash命令执行文件每行对应的多条命令?
实现方法
这里有两种简洁的Bash命令方案可以满足需求:
方案一:while循环(推荐,兼容特殊字符)
这种方法能安全处理参数中包含空格、引号等特殊字符的情况,通用性最强:
while IFS= read -r arg; do python myscript.py "$arg"; done < argsFile.txt
IFS=避免读取时自动截断参数开头的空格-r禁止解析转义字符,保证参数内容原样读取"$arg"用双引号包裹参数,防止空格被当作参数分隔符
方案二:xargs(简洁,适合简单参数)
如果你的参数都是无空格、无特殊字符的简单字符串,可以用更短的写法:
xargs -I {} python myscript.py {} < argsFile.txt
-I {}指定替换标记,会把文件中每行内容替换到命令里{}的位置
内容的提问来源于stack exchange,提问作者thevobot
相关产品推荐
相关产品推荐

