Home > other >  How to pass a string variable from shell script to python with sys.argv?
How to pass a string variable from shell script to python with sys.argv?

Time:05-14

I would like to pass a string variable from a Shell Script to my python script and have it stored in sys.argv[1]. Currently, this is my situation:

main.sh

TEST="This is a test"
python main.py $TEST

main.py

if __name__ == '__main__':
     print(sys.argv[1])

result:

This

How do I send $TEST so that sys.argv[1] = "This is a test"? I don't want to have to reconstruct the String after sending it.

CodePudding user response:

Edit your main.sh to following :

TEST="This is a test"
python main.py "${TEST}"

Variable needs to expanded inside "" and will be transformed into its value.

main.py

if __name__ == '__main__':
     print(sys.argv[1])

Result:

This is a test

CodePudding user response:

Just use:

python main.py "$TEST"

CodePudding user response:

Just like this:

import sys
TEST="This is a test"


if __name__ == '__main__':
     print(TEST, sys.argv[0])
  • Related