考虑以下Python脚本script.py:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a', type=int)
parser.add_argument('-b', type=int)
args = parser.parse_args()
print('a + b = {}'.format(args.a + args.b))
还有以下shell脚本Runner.sh:
python3 script.py
我知道我可以像这样运行script.py$ python3 script.py -a 4 -b 6来获得以下结果:a + b = 10,但我想script.py从shell脚本中运行,并能够通过-a和-b,如下所示:./runner.sh -a 4 -b 6。但是,当我尝试此操作时,不会传递这些参数:
$ ./runner.sh -a 10 -b 6
Traceback (most recent call last):
File "script.py", line 10, in <module>
print('a + b = {}'.format(args.a + args.b))
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
如何将参数传递给包装在Shell脚本中的Python脚本?对于它的价值,我也尝试了sys.argv,但没有成功。
相关分类