我想明白之间的差别grep -e和grep -E。现在从grep manpage我得到:
-E, --extended-regexp
将 PATTERN 解释为扩展的正则表达式(见下文)。
-e 模式, --regexp=模式
使用 PATTERN 作为模式;有助于保护以 - 开头的模式
上面的解释对我来说没有意义。
那么,有人可以使用examples两者之间的区别以及何时使用哪个选项向我解释它。
PS:版本:grep (GNU grep) 2.10
我观察到 echo 的以下行为
#!/bin/bash
x=" hello"
echo $x
echo "$x"
Run Code Online (Sandbox Code Playgroud)
现在,当我运行上面的代码时,我得到
ronnie@ronnie:~$ bash test.sh
hello
hello
ronnie@ronnie:~$
Run Code Online (Sandbox Code Playgroud)
所以,有人可以向我解释为什么whitespace在第一种情况下不存在于输出中,并且还指向我定义此行为的文档。
我有这个简单的脚本,它将输出和append它重定向到一个文件。
filename="/home/ronnie/tmp/hello"
date=$(date)
echo "$date" >> $filename
Run Code Online (Sandbox Code Playgroud)
现在,假设我更改date=$(date)为date= $(date)哪个会产生错误。
我修改后的脚本:
filename="/home/ronnie/tmp/hello"
date= $(date)
echo "$date" >> $filename 2>> $filename
#Also tried echo "$date" >> $filename 2>&1
Run Code Online (Sandbox Code Playgroud)
我在想上面的脚本会将错误重定向test.sh: line 5: Fri: command not found到文件,hello但它只是在文件中输入一个新行,错误会打印在我的stdout.
我的 bash 版本:
ronnier@ronnie:~/tmp$ bash --version
GNU bash, version 4.2.24(1)-release (i686-pc-linux-gnu)
Run Code Online (Sandbox Code Playgroud)
那么,我哪里出错了。