将参数(列表)从 /bin/sh 传递到 python
Pass arguments(a list) from /bin/sh to python
我有一个 test.py
文件如下:
year= sys.argv[1]
for i in range(len(year)):
print("Working on year",year[i])
year
应该采用诸如 ['2021','2022']
之类的年份列表并循环遍历它。我正在构建一个 .sh
文件,它可以将年份列表传递给 python.Here 是 test.sh
文件:
#!/bin/bash
year=
echo 'Working on' $year 'year'
python path/test.py $year
我希望能正确设置它,这样我就可以 运行 在命令行中这样做:
sh test.sh '2021 2022'
它会打印出年份。但是,它循环通过 2,0,2,1
而不是 2021
和 2022
。我该如何解决这个问题?
在你的 shell 脚本中,通过使用 "$@"
扩展到 "" "" ""
来传递整个参数列表......等等,因为有很多参数可用:
#!/bin/bash
echo "Requesting work on years:"
printf ' - %s\n' "$@"
python path/test.py "$@"
在您的 Python 脚本中,处理整个参数列表:
#!/usr/bin/env python
import sys
for i in sys.argv[1:]:
print("Working on year", i)
我有一个 test.py
文件如下:
year= sys.argv[1]
for i in range(len(year)):
print("Working on year",year[i])
year
应该采用诸如 ['2021','2022']
之类的年份列表并循环遍历它。我正在构建一个 .sh
文件,它可以将年份列表传递给 python.Here 是 test.sh
文件:
#!/bin/bash
year=
echo 'Working on' $year 'year'
python path/test.py $year
我希望能正确设置它,这样我就可以 运行 在命令行中这样做:
sh test.sh '2021 2022'
它会打印出年份。但是,它循环通过 2,0,2,1
而不是 2021
和 2022
。我该如何解决这个问题?
在你的 shell 脚本中,通过使用 "$@"
扩展到 "" "" ""
来传递整个参数列表......等等,因为有很多参数可用:
#!/bin/bash
echo "Requesting work on years:"
printf ' - %s\n' "$@"
python path/test.py "$@"
在您的 Python 脚本中,处理整个参数列表:
#!/usr/bin/env python
import sys
for i in sys.argv[1:]:
print("Working on year", i)