bash执行svn命令,其中url包含空格

时间:2012-05-25 10:13:07

标签: bash svn whitespace

对于Linux,尤其是bash脚本,我是新手。

基本上我想做的是(在某些混合bash /伪代码中)

for entry in `svn list https://svn.xxx.../projects`
  if already checked out
  then
    svn up https://svn.xxx.../projects/$entry some/local/path
  else 
    svn co https://svn.xxx.../projects/$entry some/local/path
  fi

  ... other stuff ...
done

我的问题是,遗憾的是我们的一些项目名称中包含空格。 我设法组装了“入口”部分,但在执行subversion命令时,url中的空格被转义。 E.g。

svn co "https://svn.xxx.../projects/$myassembly" some/local/path

变为

svn co https://svn.xxx.../projects/Project%20With%20Space some/local/path

并且无法找到网址。

如果有任何帮助,我将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

使用while循环而不是for循环和引号扩展变量。使用重定向到while

的流程替换提供done循环
while read -r entry
do
  if already checked out
  then
    svn up "https://svn.xxx.../projects/$entry" some/local/path
  else 
    svn co "https://svn.xxx.../projects/$entry" some/local/path
  fi

  ... other stuff ...
done < <(svn list https://svn.xxx.../projects)
相关问题