相关疑难解决方法(0)

expr 算术中的括号:3 * (2 + 1)

expr 似乎不喜欢括号(在数学中用于显式运算符优先级):

expr 3 * (2 + 1)
bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)

如何在bash中表达操作员优先级?

shell quoting arithmetic expr

72
推荐指数
5
解决办法
14万
查看次数

bash -e 在 let 或 expr 计算为 0 时退出

我有一个设置 -e 的 bash 脚本,因此脚本将在任何退出状态下退出!= 0。

我正在尝试执行一些分配给变量的基本 shell 算术,有时表达式等于 0,这会导致 let 或 expr 命令的退出状态为“1”。

下面是一个例子:

#!/bin/bash -ex
echo "Test 1"
Z=`expr 1 - 1` || true
echo "Z will print"
let "A=4 - 4"
echo "A WILL NEVER PRINT $A"
Y=`expr 1 - 1`
echo "Y WILL NEVER PRINT $Y"
X=$(expr 2 - 2)
echo "X WILL NEVER PRINT $X"
Run Code Online (Sandbox Code Playgroud)

输出是:

$ ./test_error.sh 
+ echo 'Test 1'
Test 1
++ expr 1 - 1
+ Z=0
+ true
+ echo …
Run Code Online (Sandbox Code Playgroud)

scripting bash exit arithmetic

24
推荐指数
1
解决办法
8027
查看次数

标签 统计

arithmetic ×2

bash ×1

exit ×1

expr ×1

quoting ×1

scripting ×1

shell ×1