在 shell 脚本命令的一部分中使用带空格的变量的正确方法是什么?

dev*_*eed 0 command-line bash rhel subversion variable-substitution

如何在 RHEL bash 脚本的 svn 命令中使用的变量中包含空格?或者如果下面还有什么问题,请指教。

SVN URL 变量没有空格,这部分正在工作:

svn checkout $svnUrl $checkoutDir --username $username --password $password --non-interactive --depth immediates --no-auth-cache
Run Code Online (Sandbox Code Playgroud)

但是在硬编码时工作的 SVN 更新命令不能作为变量工作:

updateSubProject="&& svn update --set-depth infinity --no-auth-cache --username $username --password $password --non-interactive"
cd project-dir $updateSubProject
cd ../another-project $updateSubProject
Run Code Online (Sandbox Code Playgroud)

Eri*_*ouf 6

更好的是制作一个函数来做到这一点

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
Run Code Online (Sandbox Code Playgroud)

这样您就不会试图将代码存储在变量中,并且您将避免很多分词问题。