【发布时间】:2021-05-28 11:06:30
【问题描述】:
我正在尝试在 Jenkins 管道脚本中的 Bash shell 中设置 IFS。见下文第 34 行。问题是我无法正确引用多级引用。如果我只是在 bash 终端上输入,则该行将是 IFS=$'\n'。但是,无论我在不同的组合中使用多少个反斜杠,我都无法让它发挥作用。在这一点上,我只是猜测。
第 36 行末尾的 $filename 变量是一个文件名列表,其中包含由换行符分隔的内部空格 (\n)。因此,我希望 IFS 变量仅为\n。
这是文本形式的相同sn-p。
steps {
sh """
#!/bin/bash
export PATH="$PATH:/root/.local/bin"
IFS=\$\\'\\n\\'
pip install -r requirements.txt --user
python EC_Workload_Analysis/combine.py --webdav --zipfile ${BUILD_NUMBER} --user $SCRIPT_CREDS_USR --password $SCRIPT_CREDS_PSW $filenames
"""
}
【问题讨论】:
-
我强烈建议将该代码放入脚本中。试图维护用另一种语言编写的重要代码总是一件很痛苦的事情。
标签: bash jenkins backslash quote ifs