Pass arguments to python based on wild character

时间:2015-07-28 16:36:19

标签: python bash shell wildcard

I have a shell script test.sh as below:

#!/bin/sh
ARG1=/bin/file1.txt
ARG2=/bin/testfile.txt
ARG3=/bin/samplefile.txt

test.py $ARG1 $ARG2 $ARG3

The python script reads the arguments and copies the files to another location. Instead of defining all the arguments separately as ARG1, ARG2, ARG3. I want to use a wild character as *.txt to define them and pass them to test.py.

I can't change the python file and all i can change is the test.sh file. So basically define the varaibles using *.txt and pass the arguments to test.py

I'm not much familiar with shell scripting. Is there a way I can save these variables in an array and then pass it to python script separately?

1 个答案:

答案 0 :(得分:3)

Just call

test.py /bin/*.txt

and bash will expand this to

test.py /bin/file1.txt /bin/testfile.txt /bin/samplefile.txt

To test shell expansions, you can use echo:

echo /bin/*.txt

or

echo /bin/newfile /bin/*.txt

which will then echo the list of files.