我正在研究一个shell脚本,我要检查字符串B中是否包含字符串A.
所以我马上写出来(以“钥匙”为例)
if [ `echo "$KEY" | grep "\$"` ]
但出于某种原因,在我的shell脚本上输出
echo "$KEY" | grep "\$"
返回“value”
在zshrc上测试相同的命令后,得到了不同的结果(没有预期的结果)
任何人都知道它可能来自哪里?
编辑:在重新编写我的脚本后,我将“”引号更改为''并获得了正确的结果
echo "$KEY" | grep '\$'
然而,我的测试仍在写出来
[ if `echo "$KEY" | grep '\$'` ]
答案 0 :(得分:3)
更惯用和直接的方法是使用shell的case
语句。语法略显怪异,仍然有一些元字符可以处理,但不是像grep
一样的完整正则表集。
case '$key' in
*\$* ) echo contained ;;
* ) echo not ;;
esac