長話短說,是否有可能讓bc評估下列表達式?Bash bc計算器評估,多種條件未評估
echo "!(2.2 >= 0) && !(2.2 < 10)" | bc
bash: !: event not found
我知道這個工程:
echo "(2.2 >= 0) && (2.2 < 10)" | bc
1
那我做錯了嗎? bc手冊頁說它支持!expr,但我似乎無法調用它。我知道可以通過否定比較符號來解決問題,但我想知道在這種情況下應如何調用!expr。
非常感謝。
長話短說,是否有可能讓bc評估下列表達式?Bash bc計算器評估,多種條件未評估
echo "!(2.2 >= 0) && !(2.2 < 10)" | bc
bash: !: event not found
我知道這個工程:
echo "(2.2 >= 0) && (2.2 < 10)" | bc
1
那我做錯了嗎? bc手冊頁說它支持!expr,但我似乎無法調用它。我知道可以通過否定比較符號來解決問題,但我想知道在這種情況下應如何調用!expr。
非常感謝。
bash: !: event not found
還有就是bash
功能,被稱爲‘歷史擴展’(見man bash
) :它處理!
特別,即使在雙引號
更換用單引號雙引號應該幫助(歷史擴展不存在發生)
。此外,歷史擴展不會發生在非交互式shell中(也就是說,您的示例將在腳本中按原樣運行)。
這似乎是bash解釋你的「!」作爲某種指令。更換「爲」爲我工作
時候才outputing東西終端這也恰好:
$ echo "!"
-bash: !: event not found
$ echo '!'
!
一個步行約與雙引號的bash:
[email protected]:/tmp$ echo -e "\x21(3>5)"|bc
1
下進行測試:
[email protected]:/tmp$ bash -version|head -1
GNU bash, version 4.2.42(2)-release (i686-pc-linux-gnu)
ASCII十六進制,以防止 '!'評價?有趣。 –
@ S.T.A.L.K.E.R。我使用這個技巧來避免在編寫sed行時出現「或者」。\ \ \「對很煩人。 – Kent