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