expr -1 + 1的$?返回值为什么是1,但是expr -2+ 1的$?返回值是0

来源:5-10 bash数学运算之expr(下)

再也不上QQ鸟

2020-05-23

老师请问
expr -1 + 1的KaTeX parse error: Expected 'EOF', got '返' at position 2: ?返̲回值为什么是1,但是expr …?返回值是0

[vagrant@kops-host sh_test]$ expr -1 + 1
0
[vagrant@kops-host sh_test]$ echo ?1[vagrant@kops−hostshtest]? 1 [vagrant@kops-host sh_test]?1[vagrant@kopshostshtest] expr -2 + 1
-1
[vagrant@kops-host sh_test]$ echo $?
0

写回答

1回答

酷田

2020-05-26

在shell中,$?代表上一条命令的返回结果,其中0表示上条命令正确执行,1代表上条命令没有正确执行。但这也不是绝对的,例如你这里举的例子expr -2 + 1这个从数值运算来说是正确执行了,但$?确实-1。这个是shell不严谨的一面,所以我们在使用的时候一般利用expr来判断2个 数值是不是都是数字,但如果做算术运算结果,我们不会根据结果来做下一个指令的判断条件,这个没法严格解释,知道后规避使用就可以了

0
0

掌握Shell脚本编程 360架构师带你进阶Linux高手

30%知识讲解+70%实例操作 掌握Shell脚本编程能力

1638 学习 · 297 问题

查看课程