作为参数传递时,字符串的内部引号被删除

问题描述 投票:0回答:1

我目前有一个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")
linux formatting arguments quotes
1个回答
2
投票

SUSE周围的引号与分隔参数的引号相匹配。 shell在命令行解析期间删除它们。

您可以将整个参数放在双引号中,并转义嵌入的双引号。

Script.py --FunctionArgs "\"osPlatform='SUSE',osVersion=11\""
© www.soinside.com 2019 - 2024. All rights reserved.