使用" ^ - "在grep

时间:2014-07-15 08:02:11

标签: linux bash unix grep echo

我在bash脚本中遇到过这个问题:

echo -e "${CONFIG_FILE}x" | grep -q "^-"

其中CONFIG_FILE是一些配置文件,其中包含与构建脚本相关的设置。

'x'"${CONFIG_FILE}x"的含义是什么?-q "^-"模式在grep中的作用是什么?

谢谢!

2 个答案:

答案 0 :(得分:3)

x之后我${CONFIG_FILE}没有看到任何目的。也许有一个早期版本的脚本,他们没有引用变量,所以他们写了

echo -e ${CONFIG_FILE}x

在这种情况下,x确保即使变量为空,也存在echo的参数。但引号解决了这个问题,因此不再需要x

grep -q "^-"测试输入的第一个字母是否为-。正则表达式^匹配行的开头,-匹配自身。 -q选项告诉grep不要打印匹配的行,它只是根据它是否匹配来设置其退出状态。

答案 1 :(得分:0)

  • echo -e "${CONFIG_FILE}x"

    展开并打印CONFIG_FILE变量的值,后跟文字x

  • grep -q "^-"

    如果输出以-符号开头,则退出。