I am having a test.py file that are below:
year= sys.argv[1]
for i in range(len(year)):
print("Working on year",year[i])
year should take a list of years such as ['2021','2022'] and loop thru it. And I am constructing a .sh file that can just pass a list of years to python.Here is the test.sh file:
#!/bin/bash
year=$1
echo 'Working on' $year 'year'
python path/test.py $year
I am hoping to have it set up correctly so I can just run this in command line:
sh test.sh '2021 2022'
and it'd print out years. However, it loop thru 2,0,2,1 instead of 2021 and 2022. How do I fix this?
CodePudding user response:
In your shell script, pass the whole argument list through by using "$@" to expand to "$1" "$2" "$3" ...etc, for however many arguments are available:
#!/bin/bash
echo "Requesting work on years:"
printf ' - %s\n' "$@"
python path/test.py "$@"
In your Python script, process that whole argument list:
#!/usr/bin/env python
import sys
for i in sys.argv[1:]:
print("Working on year", i)
