检查变量中的字符串

时间:2013-01-11 19:27:35

标签: bash

在bash中我经常检查一个变量的值,它是否可以这样做?还有更好的方法吗?

示例:

    if [ "`echo ${file} | grep -vE '(Trash|home)'`" ] ;then

检查变量文件是否包含单词Trash或home,如果它不执行某些操作。关键是我正在使用echo和grep,我认为这可能是浪费。

另一个例子:

    if [ "`less ${TEMPQUERY} | grep 'http'`" ] ;then

正在检查文件中的字符串http,如果它在文件中,则执行某些操作。

我想我只是想知道别人做了什么,以及是否有一些强烈的理由我不应该以这种方式编码。无论如何,请提前感谢您的时间。

1 个答案:

答案 0 :(得分:5)

$ file="My home"
$ [[ $file =~ Trash|home ]] ; echo $?
0
$ file="root"
$ [[ $file =~ Trash|home ]] ; echo $?
1

$ cat input.txt
http://...
$ grep -v -q http input.txt ; echo $?
1