RHEL bashスクリプトのsvnコマンドで使用される変数の一部としてスペースを含める方法は?または下記の内容に問題がある場合はお知らせください。
SVN URL変数には空白がなく、次の部分が有効です。
svn checkout $svnUrl $checkoutDir --username $username --password $password --non-interactive --depth immediates --no-auth-cache
ただし、ハードコーディング時に機能するSVNアップデートコマンドは変数として機能しません。
updateSubProject="&& svn update --set-depth infinity --no-auth-cache --username $username --password $password --non-interactive"
cd project-dir $updateSubProject
cd ../another-project $updateSubProject
答え1
より良いアプローチは、これを行う関数を作成することです。
updateSubProject() {
pushd "$1"
svn checkout "$svnUrl" "$checkoutDir" --username "$username" --password "$password" --non-interactive --depth immediates --no-auth-cache
popd
}
updateSubProject project-dir
updateSubProject path/to/another-project
これにより、コードを変数に保存しようとせずに多くの単語分離の問題を回避できます。
答え2
変数に格納されているコマンドを実行しようとしている可能性があるため、
eval "$updateSubProject"
変数から二重&を削除して次のように実行します。
cd project-dir && eval "$updateSubProject"