在bash中我经常检查一个变量的值,它是否可以这样做?还有更好的方法吗?
示例:
if [ "`echo ${file} | grep -vE '(Trash|home)'`" ] ;then
检查变量文件是否包含单词Trash或home,如果它不执行某些操作。关键是我正在使用echo和grep,我认为这可能是浪费。
另一个例子:
if [ "`less ${TEMPQUERY} | grep 'http'`" ] ;then
正在检查文件中的字符串http,如果它在文件中,则执行某些操作。
我想我只是想知道别人做了什么,以及是否有一些强烈的理由我不应该以这种方式编码。无论如何,请提前感谢您的时间。
答案 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