我目前有一个python脚本,它接受多个参数,其中一个恰好是一个三重引用的字符串,传递给脚本,如下所示:
Script.py --FunctionArgs '"osPlatform='SUSE',osVersion=11"'
正如您所看到的,有外部单引号,内部双引号带有另外一对单引号。这些内部单引号在脚本中使用时至关重要,但是当我打印sys.args时,我得到以下结果:
(FunctionArgs='"osPlatform=SUSE,osVersion=11"')
正如您所看到的那样,内部引号被剥离了。由于脚本运行方式的性质,我无法对参数的奇怪三元引用格式做任何事情。无论如何,我可以让我的Python脚本不从参数中删除这些内部引号?
当FunctionArgs
参数没有外部单引号(我无法做任何事情)时,它工作正常并保留内部单引号:
Script.py --FunctionArgs "osPlatform='SUSE',osVersion=11"
结果是
(FunctionArgs="osPlatform='SUSE',osVersion=11")
SUSE
周围的引号与分隔参数的引号相匹配。 shell在命令行解析期间删除它们。
您可以将整个参数放在双引号中,并转义嵌入的双引号。
Script.py --FunctionArgs "\"osPlatform='SUSE',osVersion=11\""