相关疑难解决方法(0)

let、expr 和 $[] 的区别

我想知道这两者之间到底有什么区别

a=$[1+1]
a=$((1+1))
let a=1+1
a=$(expr 1 + 1 )
Run Code Online (Sandbox Code Playgroud)

所有 4 都将变量 a 赋值为 2,但有什么区别?

从我目前发现的情况来看, expr 速度较慢,因为它不是一个实际的 shell 内置函数。但仅此而已。

command-line bash scripts

29
推荐指数
3
解决办法
2万
查看次数

为什么 bash 算术中的除法将大多数百分比计算为 0?

尝试对脚本进行 bash 算术运算,但$e直到最后才更新。输出不言自明。

max=5
for e in $(seq 1 1 $max); do 
    percent=$(( $e/$max*100 ))
    echo "echo $e / $max : = $percent"
done
Run Code Online (Sandbox Code Playgroud)

Tl;DR:以百分比形式显示 1..5。

输出 :

echo 1 / 5 : = 0
echo 2 / 5 : = 0
echo 3 / 5 : = 0
echo 4 / 5 : = 0
echo 5 / 5 : = 100
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

command-line bash scripts

15
推荐指数
4
解决办法
2112
查看次数

Why let command doesn't work to add real numbers?

I need to add some real numbers in a script. I tried:

let var=2.5+2.5 
Run Code Online (Sandbox Code Playgroud)

which gives me an error - invalid arithmetic operator and then I tried:

let var=2,5+2,5 
Run Code Online (Sandbox Code Playgroud)

which does not give me an error, but it gives me a wrong result -2 in this case.

Why? How to add real numbers using let or other command?

command-line bash

3
推荐指数
1
解决办法
5884
查看次数

标签 统计

bash ×3

command-line ×3

scripts ×2