我对 bash 很陌生,所以如果这是一个愚蠢的问题,我深表歉意。
我正在尝试编写一个脚本,该脚本需要一个文件并测试它是否以 html 结尾。这是我的代码:
echo tester.html | grep -E '[^ ]*[.html]'
然而它会回应我给它的每一个输入,我该如何解决它?
echo tester.html | grep -q '\.html$' && echo "MATCH" || echo >&2 "NO MATCH"
或在bash
x=tester.html
[[ $x == *html ]] && echo "MATCH" || echo >&2 "NO MATCH"
&&
&||
布尔语法是 的快捷方式if condition; then something; else something_else; fi
,请参阅http://mywiki.wooledge.org/BashGuide/TestsAndConditionals
注意
-[]
在正则表达式中使用意味着字符类(一组字符)
我在 sputnick 的帮助下解决了这个问题。
这里是:
echo tester.html | grep -E *html
这有效,
谢谢大家。