-1

如何使用特殊字符(例如下面显示的字符)转义/处理括号/任意输入,以便我的 python 代码获得正确的字符串参数?

我有一个 YAML 管道,它将输入参数作为来自用户的字符串,并将该字符串作为参数提供给 Python 任务:

   - name: Name
     displayName: Username
     type: string
     default: "-"

   - task: PythonScript@0
     displayName: 'Python task'
     inputs:
       scriptPath: $(System.DefaultWorkingDirectory)/x/y.py
       arguments: ' -Name "${{parameters.Name}}" '
       workingDirectory: '$(System.DefaultWorkingDirectory)/x'

此输入参数适用于字母数字字符,但是当我输入具有左圆括号和右圆括号的字符串(例如 Foo(Bar))时,Python YAML 任务会打印错误:

/bin/sh: 1: 语法错误: "(" 意外

请注意,在 Python 脚本执行开始之前,管道日志中就出现了上述错误

成功输入字符串:FooBar

失败输入字符串:Foo(Bar)

我该如何处理,以便我的 Python 脚本获得正确的字符串?

Python脚本:

import argparse

parser = argparse.ArgumentParser(description="test")
parser.add_argument("-Name")

args = parser.parse_args()

user_name= args.Name

编辑:增加了更多的清晰度,并添加了 Python 脚本

4

1 回答 1

0

我已经解决了这个问题。我用双引号包裹了我的输入参数,现在我可以使用特殊字符获取输入字符串。我从我的 Python 脚本中为下一个任务输出管道变量,但由于特殊字符,我曾经收到此错误。

于 2021-08-04T13:16:03.500 回答