YAML 管道无法将具有特殊字符的输入参数解析为 Python 任务
YAML pipeline unable to parse input parameter with special characters to a Python task
如何 escape/handle parentheses/arbitrary 输入特殊字符,例如我在下面显示的字符,以便我的 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: Syntax error: "(" unexpected
请注意,上述错误甚至在 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 脚本
我已经解决了这个问题。
我用双引号将我的输入参数括起来,现在我可以接受带有特殊字符的输入字符串。
我从我的 Python 脚本输出管道变量用于下一个任务,但由于特殊字符,我曾经得到这个错误。
如何 escape/handle parentheses/arbitrary 输入特殊字符,例如我在下面显示的字符,以便我的 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: Syntax error: "(" unexpected
请注意,上述错误甚至在 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 脚本
我已经解决了这个问题。 我用双引号将我的输入参数括起来,现在我可以接受带有特殊字符的输入字符串。 我从我的 Python 脚本输出管道变量用于下一个任务,但由于特殊字符,我曾经得到这个错误。