如何使用 sys.argv 将字符串变量从 shell 脚本传递到 python?

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

我想将字符串变量从 Shell 脚本传递到我的 python 脚本并将其存储在 sys.argv[1] 中。 目前,我的情况是这样的:

main.sh

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

main.py

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

结果:

This

如何发送 $TEST 以便 sys.argv[1] = "This is a test"? 我不想在发送后重建字符串。

将您的 main.sh 编辑为以下内容:

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

变量需要在“”内展开,将转化为它的 值。

main.py

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

结果:

This is a test

就像这样:

import sys
TEST="This is a test"


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

只需使用:

python main.py "$TEST"