3

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 のスペースがエスケープされました。例えば

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

になる

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

URLが見つかりませんでした。

これを解決する方法について何か助けていただければ幸いです。ありがとう

4

1 に答える 1

1

変数が展開されるループと引用符whileの代わりにループを使用します。にリダイレクトされたプロセス置換を使用してループをforフィードします。whiledone

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)
于 2012-05-25T11:11:41.000 に答える