Linux 詹金斯:在bash脚本中插入特殊角色
我在里面执行一个bash脚本。这样的命令在执行时Linux 詹金斯:在bash脚本中插入特殊角色,linux,bash,shell,hudson,jenkins,Linux,Bash,Shell,Hudson,Jenkins,我在里面执行一个bash脚本。这样的命令在执行时 current_loc=/tmp/$BUILDTYPE rm -rf $current_loc/* [ -d $current_loc/ ] || mkdir -p $current_loc 取而代之 + current_loc=$'/tmp/stage\r' + rm -rf '/tmp/stage /* ' + '[' -d $'/tmp/stage\r/' ']' + mkdir -p $'/tmp/stage\r\r' 美元报价和\r
current_loc=/tmp/$BUILDTYPE
rm -rf $current_loc/*
[ -d $current_loc/ ] || mkdir -p $current_loc
取而代之
+ current_loc=$'/tmp/stage\r'
+ rm -rf '/tmp/stage
/*
'
+ '[' -d $'/tmp/stage\r/' ']'
+ mkdir -p $'/tmp/stage\r\r'
美元
报价
和\r
正在制造混乱。我该如何解决这个问题 必须用类似命令的命令替换“\r”符号
BULDTYPE=$(echo$BULDTYPE | tr-d'\r')代码>在Jenkins中运行BASH脚本有几种方法。方法1是创建一个bash脚本,并让Jenkins在构建过程中执行它。但是,您也可以直接在Jenkins中键入BASH脚本。你是怎么做的
我怀疑您在Windows上使用记事本编写了shell脚本,然后在Unix或Cygwin安装上执行它,该安装设置为使用Unix行结尾。您看到的\r
在shell脚本本身中
可以使用程序编辑器重新编辑脚本,然后将行尾设置为Unix行尾。在VIM中,您可以通过以下方式执行此操作:
:set ff=unix
在命令模式下
如果在Windows上使用(免费下载和开源),请选择Edit->EOL Conversion->Unix
菜单项。(或者您可以使用)
您可以运行大多数Unix和Linux安装所具有的dos2unix
实用程序,但我还是会在程序编辑器中查看脚本
请勿使用非程序编辑器编辑程序。我见过有人使用Winpad而忘记将脚本保存为文本。相反,它们创建RTF格式的shell脚本。RTF格式让Unix BASH shell很伤心。我猜您在current\r\n=/tmp/$BUILDTYPE
和…mkdir-p>中使用了“\r\n”作为行分隔符。
linesRundos2unix
这样的工具:dos2unix myscript
,然后再试一次