我在里面执行一个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'
dollar
quoting
和\r
正在造成严重破坏。我该如何解决?
答案 0 :(得分:0)
您必须使用
之类的命令替换'\ r'符号 BULDTYPE=$(echo $BULDTYPE | tr -d '\r');
答案 1 :(得分:0)
有几种方法可以在Jenkins中运行 BASH 脚本。方法#1是创建一个bash脚本,让Jenkins在构建过程中执行它。但是,您也可以直接在Jenkins中键入BASH脚本。你是这样做的?
我怀疑你是否在Windows上使用记事本编写了shell脚本,然后在Unix或Cygwin安装上执行它,该安装设置为采用Unix行结尾。您看到的\r
就在您的shell脚本中。
您可以使用程序编辑器重新编写脚本,然后将行结尾设置为Unix行结尾。在VIM中,您可以通过以下方式执行此操作:
:set ff=unix
在命令模式下。
如果您在Windows上使用Notepad++(免费下载和开源),请选择Edit->EOL Conversion->Unix
菜单项。 (或者您可以使用Vim)
您可以运行大多数Unix和Linux安装所具有的dos2unix
实用程序,但我仍然会在程序编辑器中查看该脚本。
请勿使用非程序编辑器编辑程序。我见过人们使用Winpad而忘记将脚本保存为 Text 。相反,他们以RTF格式创建一个shell脚本。 RTF格式使Unix BASH shell难过。