调用一个包含空格的bash变量

时间:2013-07-29 17:56:40

标签: bash svn

我在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和footer提供此类或目录 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脚本中调用其中包含空格的标记。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

并最终在一些不存在的文件trunk-indexFORin中搜索词组footer

尝试

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

代替。