Bash bc计算器求值,多个条件不求值
长话短说,可以让bc计算以下表达式吗Bash bc计算器求值,多个条件不求值,bash,bc,Bash,Bc,长话短说,可以让bc计算以下表达式吗 echo "!(2.2 >= 0) && !(2.2 < 10)" | bc bash: !: event not found echo”!(2.2>=0)和&!(2.2=0)和&(2.2
echo "!(2.2 >= 0) && !(2.2 < 10)" | bc
bash: !: event not found
echo”!(2.2>=0)和&!(2.2<10)|公元前
巴什:!:未找到事件
我知道这是可行的:
echo "(2.2 >= 0) && (2.2 < 10)" | bc
1
echo”(2.2>=0)和&(2.2<10)|公元前
1.
那么我做错了什么?卑诗省手册页说,它支持!expr,但我似乎无法调用它。我知道可以通过否定比较符号来解决这个问题,但我想知道应该如何解决这个问题!在这种情况下不能调用expr
非常感谢。bash似乎将您的“!”解释为某种命令。替换“for”对我来说很有效 在向终端输出内容时也会发生这种情况:
$ echo "!"
-bash: !: event not found
$ echo '!'
!
看来狂欢节是在诠释你的“!作为一种命令。替换“for”对我来说很有效 在向终端输出内容时也会发生这种情况:
$ echo "!"
-bash: !: event not found
$ echo '!'
!
bash
有一个功能,叫做“历史扩展”(参见manbash
):它处理代码>特别,即使在双引号内
用单引号替换双引号应该会有帮助(历史扩展不会在那里发生)
此外,历史扩展不会发生在非交互式shell中(也就是说,您的示例将像脚本中一样工作)
bash
有一个功能,叫做“历史扩展”(参见manbash
):它处理代码>特别,即使在双引号内
用单引号替换双引号应该会有帮助(历史扩展不会在那里发生)
此外,历史扩展不会发生在非交互式shell中(也就是说,您的示例将在脚本中运行)。在bash中使用双引号进行漫游:
kent@7pLaptop:/tmp$ echo -e "\x21(3>5)"|bc
1
在以下条件下测试:
kent@7pLaptop:/tmp$ bash -version|head -1
GNU bash, version 4.2.42(2)-release (i686-pc-linux-gnu)
带双引号的bash漫游:
kent@7pLaptop:/tmp$ echo -e "\x21(3>5)"|bc
1
在以下条件下测试:
kent@7pLaptop:/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行时,我使用这个技巧来避免“或”转义。\'\'对很烦人。ASCII十六进制可以防止“!”评价有趣。@S.T.A.L.K.E.R。当我写sed行时,我使用这个技巧来避免“或”转义。\'\'对是令人讨厌的。