我在里面执行一个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正在造成严重破坏。我该如何解决这个问题?
发布于 2011-11-28 06:19:38
您必须用命令替换'\r‘符号,如
BULDTYPE=$(echo $BULDTYPE | tr -d '\r');
发布于 2011-11-28 09:35:33
有几种方法可以在Jenkins中运行BASH脚本。方法1是创建一个bash脚本,并让Jenkins将其作为构建过程的一部分执行。但是,您也可以直接在Jenkins中键入BASH脚本。你用哪种方式来做呢?
我怀疑您在Windows上使用记事本编写了shell脚本,然后在Unix或Cygwin安装上执行它,而Cygwin安装设置为Unix行结尾。您看到的\r就在您的shell脚本本身中。
您可以使用程序编辑器重新编辑脚本,然后将行尾设置为Unix行尾。在VIM中,您可以通过以下方式完成此操作:
:set ff=unix在命令模式下。
如果你在Windows上使用Notepad++ (免费下载和开源),你可以选择Edit->EOL Conversion->Unix菜单项。(或者您可以使用Vim)
您可以运行大多数Unixes和Linux安装所具有的dos2unix实用程序,但我无论如何都会在程序编辑器中查看该脚本。
请勿使用非程序编辑器编辑程序。我见过有人使用Winpad,却忘记将脚本保存为文本。相反,他们创建RTF格式的shell脚本。RTF格式让Unix BASH shell感到悲哀。
https://stackoverflow.com/questions/7821930
复制相似问题