0
如果我做的:如何在沒有「測試」的情況下創建if或while循環並使用「not」運算符?
if grep someexpression somefile >/dev/null; then
...
fi
事情做工精細。
做一個 「不」,我知道我可以做到這一點(使用[],這是測試命令):
if [ '!' somecondition ] ; then
...
fi
簡單的解決方法:
grep someexpression somefile >/dev/null
if [ '!' $? ]; then
...
fi
但上面的解決方法將不會使用while循環,所以我需要編寫一個函數,而這很煩人。我該如何做一個不符合上述grep事情的正確方法?
有趣。上次我遇到這個問題時,我完全是這樣想的,它說「沒有這樣的事件」。但你的例子工作正常。 – Peter 2012-04-20 11:29:42
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html - 它甚至是文檔中的一個例子。 (以ksh工作,但我不確定它是否是有效的POSIX shell語法。) – Mat 2012-04-20 11:38:41
您已啓用歷史擴展。這不應該是一個腳本中的問題。我交互禁用它,因爲它會導致更多的問題,而不是它的價值。 @Mat它是POSIX。它並沒有永遠存在,但我懷疑這種炮彈的嚴重使用者仍然處於這種狀態(方式是在爆炸前/爆破彈之前)。 – ormaaj 2012-04-20 11:53:05