我有一個test.py檔案,如下所示:
year= sys.argv[1]
for i in range(len(year)):
print("Working on year",year[i])
year應該列出諸如['2021','2022']并回圈遍歷它的年份串列。我正在構建一個.sh檔案,它可以將年份串列傳遞給 python。這是test.sh檔案:
#!/bin/bash
year=$1
echo 'Working on' $year 'year'
python path/test.py $year
我希望正確設定它,這樣我就可以在命令列中運行它:
sh test.sh '2021 2022'
它會列印出年份。但是,它回圈通過2,0,2,1而不是2021和2022。我該如何解決?
uj5u.com熱心網友回復:
在您的 shell 腳本中,通過使用"$@"擴展到"$1" "$2" "$3"...等來傳遞整個引數串列,因為有許多引數可用:
#!/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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/372403.html
