2
这是什么意思,特别是符号*结束后?了解bash脚本中的grep模式
LOG=/root/$(basename $0).log
_notlogged(){
if ! grep -q "# $*" $LOG; then
echo "no"
fi
echo "yes"
}
_notlogged
因此,grep正则表达式规则是否特别?
这是什么意思,特别是符号*结束后?了解bash脚本中的grep模式
LOG=/root/$(basename $0).log
_notlogged(){
if ! grep -q "# $*" $LOG; then
echo "no"
fi
echo "yes"
}
_notlogged
因此,grep正则表达式规则是否特别?
双引号字符串"# $*"
在传递给grep
之前受bash参数扩展支配。
$*
是bash中的一个特殊变量,它包含了所有的位置参数。意思是_notlogged
的参数。
如果你这样称呼它
_lotlogged foo
传递到grep表达将
grep -q "# foo"
检查bash manual了解更多信息。
'$ 0',尽管也有一个数字作为它的名字,不是一个位置参数;它是一个shell特殊参数。 – chepner
@chepner按照bash手册,您是对的。我承认我基本上从[here](http://wiki.bash-hackers.org/scripting/posparams)复制了这个声明。我改变了这一点。谢谢! – hek2mgl