从管道中的 git 提交消息中删除特殊字符
Remove special characters from git commit messages in pipeline
我正在写詹金斯管道
我需要获取提交消息并从此消息中删除文件名
的非法符号
stages {
stage('Get_commit_msg') {
steps {
script {
git_commit_msg= sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim()
}
}
}
stage ('3 - Database backup') {
steps {
script {
sshPublisher(
continueOnError: false, failOnError: true,
publishers: [
sshPublisherDesc(
configName: "${env.SSH_CONFIG_NAME}",
verbose: true,
transfers: [
sshTransfer(
sourceFiles: "",
removePrefix: "",
remoteDirectory: "",
execTimeout: "1200000",
execCommand:
"""
sudo mysqldump -u ${env.DATABASE_USER} ${env.DATABASE_NAME} --result-file=before_${git_commit_msg}_${env.DATE}.sql
"""
)
]
)
]
)
}
}
}
}
我有一个错误
bash: -c: 第 1 行:意外标记附近的语法错误 (' bash: -c: line 1:
sudo mysqldump -u root timesheets --result-file=before_Th (is) i#s t$e%st m^&*e{}[]ss!age_$(date '+%F').sql'
SSH:执行:401 毫秒后完成
如果我用
steps {
script {
sh "git_commit_msg=echo $git_commit_msg | tr -d '[:cntrl:]'"
}
}
}```
get error
/var/jenkins_home/workspace/pipeline@tmp/durable-aded948a/script.sh: line 1: syntax error: unexpected "("
please help
tr
可以帮助您用占位符替换所有非字母数字字符:
git_commit_msg = sh(
script: 'git log -1 --pretty=%B ${GIT_COMMIT} | tr -c "[[:alnum:]]" @',
returnStdout: true
).trim()
您可以根据自己的需要进行调整:
TR(1)
NAME
tr - translate or delete characters
SYNOPSIS
tr [OPTION]... SET1 [SET2]
DESCRIPTION
Translate, squeeze, and/or delete characters from standard input, writing to standard output.
-c, -C, --complement
use the complement of SET1
...
[:alnum:]
all letters and digits
...
我正在写詹金斯管道 我需要获取提交消息并从此消息中删除文件名
的非法符号 stages {
stage('Get_commit_msg') {
steps {
script {
git_commit_msg= sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim()
}
}
}
stage ('3 - Database backup') {
steps {
script {
sshPublisher(
continueOnError: false, failOnError: true,
publishers: [
sshPublisherDesc(
configName: "${env.SSH_CONFIG_NAME}",
verbose: true,
transfers: [
sshTransfer(
sourceFiles: "",
removePrefix: "",
remoteDirectory: "",
execTimeout: "1200000",
execCommand:
"""
sudo mysqldump -u ${env.DATABASE_USER} ${env.DATABASE_NAME} --result-file=before_${git_commit_msg}_${env.DATE}.sql
"""
)
]
)
]
)
}
}
}
}
我有一个错误
bash: -c: 第 1 行:意外标记附近的语法错误 (' bash: -c: line 1:
sudo mysqldump -u root timesheets --result-file=before_Th (is) i#s t$e%st m^&*e{}[]ss!age_$(date '+%F').sql'
SSH:执行:401 毫秒后完成
如果我用
steps {
script {
sh "git_commit_msg=echo $git_commit_msg | tr -d '[:cntrl:]'"
}
}
}```
get error
/var/jenkins_home/workspace/pipeline@tmp/durable-aded948a/script.sh: line 1: syntax error: unexpected "("
please help
tr
可以帮助您用占位符替换所有非字母数字字符:
git_commit_msg = sh(
script: 'git log -1 --pretty=%B ${GIT_COMMIT} | tr -c "[[:alnum:]]" @',
returnStdout: true
).trim()
您可以根据自己的需要进行调整:
TR(1) NAME tr - translate or delete characters SYNOPSIS tr [OPTION]... SET1 [SET2] DESCRIPTION Translate, squeeze, and/or delete characters from standard input, writing to standard output. -c, -C, --complement use the complement of SET1 ... [:alnum:] all letters and digits ...