首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins:在bash脚本中插入特殊字符

问Jenkins:在bash脚本中插入特殊字符
EN

Stack Overflow用户
提问于 2011-10-19 21:20:34
回答 2查看 1.4K关注 0票数 1

我在里面执行一个bash脚本。像这样的命令在执行时

代码语言:javascript
复制
current_loc=/tmp/$BUILDTYPE
rm -rf $current_loc/*
[ -d $current_loc/ ] || mkdir -p $current_loc

替换为

代码语言:javascript
复制
+ current_loc=$'/tmp/stage\r'
+ rm -rf '/tmp/stage
/*
'
+ '[' -d $'/tmp/stage\r/' ']'
+ mkdir -p $'/tmp/stage\r\r'

dollar quoting和\r正在造成严重破坏。我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2011-11-28 06:19:38

您必须用命令替换'\r‘符号,如

BULDTYPE=$(echo $BULDTYPE | tr -d '\r');

票数 0
EN

Stack Overflow用户

发布于 2011-11-28 09:35:33

有几种方法可以在Jenkins中运行BASH脚本。方法1是创建一个bash脚本,并让Jenkins将其作为构建过程的一部分执行。但是,您也可以直接在Jenkins中键入BASH脚本。你用哪种方式来做呢?

我怀疑您在Windows上使用记事本编写了shell脚本,然后在Unix或Cygwin安装上执行它,而Cygwin安装设置为Unix行结尾。您看到的\r就在您的shell脚本本身中。

您可以使用程序编辑器重新编辑脚本,然后将行尾设置为Unix行尾。在VIM中,您可以通过以下方式完成此操作:

代码语言:javascript
复制
:set ff=unix

在命令模式下。

如果你在Windows上使用Notepad++ (免费下载和开源),你可以选择Edit->EOL Conversion->Unix菜单项。(或者您可以使用Vim)

您可以运行大多数Unixes和Linux安装所具有的dos2unix实用程序,但我无论如何都会在程序编辑器中查看该脚本。

请勿使用非程序编辑器编辑程序。我见过有人使用Winpad,却忘记将脚本保存为文本。相反,他们创建RTF格式的shell脚本。RTF格式让Unix BASH shell感到悲哀。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7821930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档