我目前有一个带有多个参数的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")
答案 0 :(得分:2)
SUSE
周围的引号与定界参数的引号匹配。在命令行解析期间,shell会将其删除。
您可以将整个参数放在双引号中,并转义嵌入的双引号。
Script.py --FunctionArgs "\"osPlatform='SUSE',osVersion=11\""