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

时间:2019-04-25 21:21:37

标签: linux formatting arguments quotes

我目前有一个带有多个参数的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")

1 个答案:

答案 0 :(得分:2)

SUSE周围的引号与定界参数的引号匹配。在命令行解析期间,shell会将其删除。

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

Script.py --FunctionArgs "\"osPlatform='SUSE',osVersion=11\""