0

我在 bash 中有一个测试 SVN 脚本,它调用其中有空格的标签。这存储在一个变量中。见下文,

#!/bin/bash


grepper="trunk-index FOR in footer"

a=`svn ls -v file:///var/tags/folderrepo | grep $\"grepper\" | awk '{print $1}'`
echo $a
echo $grepper

echo $a 没有为 FOR in 和页脚提供此类或目录 echo $grepper 给出变量 grepper 的内容

在命令行上,我可以使用引号调用标签,

[user@test scripts]# svn ls -v file:///var/tags/folderrepo | grep "trunk-index FOR in footer"
131  ?                    Jul 29 16:21 trunk-index FOR in footer/

但是,即使我在脚本中加上引号,也不能调用相同的方法。需要在 grep 上放置什么,以便可以从 bash 脚本调用其中包含空格的标签。

谢谢!

4

1 回答 1

0

grep 不会看到你传递给它一个 shell 变量。Shell 在启动请求的程序之前扩展/替换其变量。所以 grep 认为它被调用为

... | grep trunk-index FOR in footer | ...

trunk-index并最终在一些不存在的文件中FOR搜索短语in, 和footer.

尝试

 ... | grep '$grepper' | ...

反而。

于 2013-07-29T18:00:54.183 回答