我一直在研究一個shell腳本,它通過從svn中檢查文件並調用Jar來執行一些部署任務。我一直在使用一個測試SVN網址沒有問題的發展。我現在需要測試標籤部署,突然svn給我的問題,當我嘗試使用輸入建立網址。svn導出在命令行上工作,但不在shell腳本中
我建立這樣的網址:
svnurl=$(echo ${template//[# ]/})
svnurl=$(svn://0.0.0.1/models/tags/"$tag"/"$svnurl")
urls=("${urls[@]}" $svnurl)
這是唯一的工作代碼稍有不同:
svnurl=$(echo ${template//[# ]/})
urls=("${urls[@]}" $svnurl)
svn export "$svnurl"
(基本上這是我在IP和標籤目錄出來的url -模板)。
現在,當我嘗試運行我的shell,而不是讓「出口完成」,我得到如下:
./deploy-files.sh: line 36: svn://0.0.0.1/models/tags/201407221642/ResponseA.xsl: No such file or directory
svn: '.' is not a working copy
當我運行在終端的文件導出正確svn export svn://0.0.0.1/models/tags/201407221642/ResponseA.xsl
。我檢查過,網址相同。我無法再現'。'無論我嘗試什麼,都會出現工作副本錯誤。
注:svn export -q svn://0.0.0.1/models/tags/"$tag"/deploy-filelist.yml
在腳本中使用較早且正常工作
什麼可能的原因是什麼?
感謝
編輯在SVN的網址是如何建立
urls=()
IFS=$'\n' yaml=($(cat deploy-filelist.yml))
for u in "${yaml[@]}"; do
if [[ $u =~ url.* ]]
then
template=$(echo $u | sed -e 's/url://g' -e 's/"//' -e 's/"$//')
svnurl=$(echo ${template//[# ]/})
svnurl=$(svn://0.0.0.1/models/tags/"$tag"/"$svnurl")
urls=("${urls[@]}" $svnurl)
svn checkout "$svnurl"
fi
done
,我讀了部署,filelist.yml每行
更多信息。如果該行包含「url」,我剪出所需的字符串並將其添加到模板'svn:// ....'部分。網址形成正確,因爲我可以複製錯誤消息並使用它來導出文件。
你能提供足夠的信息(比如如何使用'$ {//模板[#] /}' ),這樣任何人都可以嘗試重現這一點? –