bash中的grep没有显示任何结果?

时间:2015-03-24 14:40:01

标签: bash

我有一个类名列表,我正在尝试确定哪些不出现在一组配置文件中。所以我想我可以写一个小的bash脚本来做到这一点:

#!/bin/bash
while read line
do
    name=$line
    echo 'grep -R --include='definition.xml' '$name' ~/workspace/basedir/'
    if grep -R --include='definition.xml' '$name' ~/workspace/basedir/; then
        echo "output for $name"
    else
        echo "no output for $name"
    fi
done < $1

我的问题是,如果我使用grep命令复制并粘贴其中一个回声,那么我得到一个结果,但是grep本身(即使没有if)也没有显示任何内容。所以现在我只是得到了很多“没有输出xyz”的消息。

希望你能提供帮助。 :)

1 个答案:

答案 0 :(得分:3)

双引号"$name"。单引号可防止使用变量$name。您将'$name'字面上传递给grep,而不是变量$ name中包含的内容。