我在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脚本中调用其中包含空格的标记。
谢谢!
答案 0 :(得分:0)
grep不会看到你传递一个shell变量。在启动所请求的程序之前,Shell会扩展/替换它们的变量。所以grep认为它被调用为
... | grep trunk-index FOR in footer | ...
并最终在一些不存在的文件trunk-index
,FOR
和in
中搜索词组footer
。
尝试
... | grep '$grepper' | ...
代替。