linux - 使用带空格的变量执行shell命令

标签 linux svn bash variables properties

我在 bash 脚本中执行 svn 命令时遇到错误(不是工作副本)。我想读取一个包含文件名的文件。这些文件名在脚本中得到处理。每个文件名都在单独的一行上。因为某些路径包含空格,所以脚本失败。这是脚本和文件的片段。我已经尝试了几种方法,比如转义文件中的空格,以及在变量周围使用(双引号)引号,但仍然没有成功。

脚本:
while read line<br/> do<br/> echo "Line = $line"<br/> svn propset svn:needs-lock yes $line<br/> done <$1

文件:
/tmp/svntmp/bi/tags/SCR-400/framework/customdata.xml<br/> /tmp/svntmp/bi/tags/SCR-400/framework/model.xml<br/> /tmp/svntmp/bi/tags/SCR-400/framework/Preferences.xml<br/> /tmp/svntmp/bi/tags/SCR-400/framework/Repository.xml<br/> /tmp/svntmp/bi/tags/SCR-462/standaard\\ overzichten/Standaard\\ CPI\\ \\(Cliënten\\ productie\\ intramuraal\\)/CPI017\\ ZZP\\ productie\\ per\\ client\\ per\\ OE.xml<br/> ...

输出:
...<br/> Line = /tmp/svntmp/bi/tags/3.2.0.6/standaard\ overzichten/Standaard\ CZA\ \(Cliënten\ zorg\ algemeen\)/CZA001\ Wachtlijst\ bewoning.xml<br/> svn: warning: '/tmp/svntmp/bi/tags/3.2.0.6/standaard\' is not under version control<br/> svn: 'overzichten' is not a working copy<br/> svn: 'overzichten' does not exist<br/> ...

请指教如何解决这个问题。谢谢。

问候,

约翰基斯

最佳答案

适当时使用双引号。

svn propset svn:needs-lock yes "$line"

请注意,如果您的文件确实看起来像那样,那么无论如何都会因为其他原因而阻塞。

关于linux - 使用带空格的变量执行shell命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002846/

相关文章:

svn - 使用 SVN "authz"和 svnserve 进行访问控制

bash - 如何使用 Bash 合并 Docker Compose 文件

linux - 提取不一定重复的模式

linux - 如何在 Linux 中使用命令 "find . -type f -ls"获取按时间排序的列表(ASC/DESC)?

linux - MMIO 读/写延迟

linux - 如何在 tail -f 中只显示新记录的内容?

windows - 我如何为我们的 Subversion 设置解决 "405 Method Not Allowed"?

svn - 通过 ftp 发送整个 svn 修订版

Bash:需要帮助将变量传递给 rsync

linux - 使 linux SPLIT 命令与 Mac OS 终端兼容