Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux “的用法^-&引用;格雷普_Linux_Bash_Unix_Grep_Echo - Fatal编程技术网

Linux “的用法^-&引用;格雷普

Linux “的用法^-&引用;格雷普,linux,bash,unix,grep,echo,Linux,Bash,Unix,Grep,Echo,我在bash脚本中遇到了这个问题: echo -e "${CONFIG_FILE}x" | grep -q "^-" 其中,CONFIG_FILE是一些配置文件,它具有与生成脚本相关的设置 “${CONFIG_FILE}x”中的'x'的含义是什么?在grep中-q“^-”模式会做什么 谢谢 echo-e“${CONFIG_FILE}x” 展开并打印CONFIG_FILE变量的值,后跟literalx grep-q“^-” 如果输出以-符号开头,则退出 在${CONFIG_FILE}之后,

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

echo -e "${CONFIG_FILE}x" | grep -q "^-"
其中,
CONFIG_FILE
是一些配置文件,它具有与生成脚本相关的设置

“${CONFIG_FILE}x”
中的
'x'
的含义是什么?在grep中
-q“^-”
模式会做什么

谢谢

  • echo-e“${CONFIG_FILE}x”

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

  • grep-q“^-”

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


${CONFIG_FILE}
之后,我看不出
x
有任何用途。也许有一个早期版本的脚本,他们在变量周围没有引号,所以他们写了

echo -e ${CONFIG_FILE}x
在这种情况下,
x
确保即使变量为空,
echo
也有一个参数。但是引号解决了这个问题,因此不再需要
x


grep-q“^-”
测试输入的第一个字母是否为
-
。regexp
^
匹配行的开头,
-
匹配自身。
-q
选项告诉
grep
不要打印匹配行,它只是根据匹配与否设置退出状态。

谢谢您的回答!但是使用“^-”的原因是什么?意思是它有什么帮助。我现在在很多地方都看到过这种情况。对文件进行这种检查有什么逻辑或哲学吗?