标签: arithmetic

如何在 bash 或其他语言/框架中进行整数和浮点计算?

echo "20+5"从字面上使用会产生文本“ 20+5”。

25在这种情况下,我可以使用什么命令来获取数字总和?

另外,仅使用 bash 进行浮点运算的最简单方法是什么?例如,echo $((3224/3807.0))打印0:(.

我正在使用基本命令外壳(“命令行”)本身或通过使用命令行中可用的语言来寻找答案。

command-line shell arithmetic calculator floating-point

370
推荐指数
14
解决办法
50万
查看次数

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:双重等于与 -eq

我正在 bash 中进行整数比较(试图查看用户是否以 root 身份运行),我发现了两种不同的方法:

双等于:

if [ $UID == 0 ]
then
fi
Run Code Online (Sandbox Code Playgroud)

-eq

if [ $UID -eq 0 ]
then
fi
Run Code Online (Sandbox Code Playgroud)

我知道在 bash 中没有 >= 或 <=,只有 -ge 和 -le,那么为什么有一个==if-eq呢?

比较双方的方式有区别吗?

shell bash arithmetic

59
推荐指数
3
解决办法
9万
查看次数

如何使用大括号扩展创建带有前导零的序列

当我使用以下内容时,我得到了预期的结果:

$ echo {8..10}
8 9 10
Run Code Online (Sandbox Code Playgroud)

如何以简单的方式使用此大括号扩展以获得以下输出?

$ echo {8..10}
08 09 10
Run Code Online (Sandbox Code Playgroud)

我现在认为这可以使用seq(没有尝试)获得,但这不是我想要的。

有用的信息可能是我仅限于这个 bash 版本。(如果您有zsh解决方案,但没有bash解决方案,也请分享)

$ bash -version
GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)
Run Code Online (Sandbox Code Playgroud)

bash brace-expansion arithmetic

54
推荐指数
4
解决办法
8万
查看次数

如何从“日期”的输出中删除前导零或避免对此类十进制数进行八进制解释?

我有这个:

date +"%H hours and %M minutes"
Run Code Online (Sandbox Code Playgroud)

我用节日来表达..但它说:“零九小时”..我想让它说“九小时”!

但是 date 总是给我 09 ......所以我想知道 bash 是否可以轻松地使它变成 9 ?

在我试过的复杂脚本中

printf %d 09
Run Code Online (Sandbox Code Playgroud)

但它失败了..不是八进制:(

任何的想法?

shell bash date arithmetic

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

在 bash 中,美元符号后跟方括号 $[...] 是什么意思?

似乎$[expr]执行算术扩展就像$((expr)). 但是我$[在 bash 手册中找不到任何提及。此命令没有给出任何结果:

gunzip -c /usr/share/man/man1/bash.1.gz | grep -E '\$\['
Run Code Online (Sandbox Code Playgroud)

这个运算符是什么,它的行为在任何地方都标准化了?

我的 bash 版本:GNU bash,版本 3.2.51(1)-release (x86_64-apple-darwin13)

bash arithmetic

42
推荐指数
2
解决办法
5777
查看次数

创建一系列数字,文件中每行一个

有没有办法凭空创建一个由数字序列组成的文件,从给定的数字开始,每行一个?

就像是

magic_command start 100 lines 5 > b.txt
Run Code Online (Sandbox Code Playgroud)

然后,b.txt将是

100
101
102
103
104
Run Code Online (Sandbox Code Playgroud)

utilities files arithmetic text

37
推荐指数
3
解决办法
7万
查看次数

比较整数:算术表达式或条件表达式

在 Bash 中,可以使用条件表达式比较两个整数

ARG1 OP ARG2

OP是一个-eq-ne-lt-le-gt,或-ge。如果arg1 分别等于、不等于、小于、小于或等于、大于或大于或等于arg2,则这些算术二元运算符返回 true 。Arg1arg2可以是正整数或负整数。

或算术表达式:

<= >= < > 比较

== != 平等与不平等

为什么我们有两种不同的方法来比较两个整数?什么时候用哪个?

例如,[[ 3 -lt 2 ]]使用条件表达式,并(( 3 < 2 ))使用算术表达式。当比较为真时两者都返回 0

比较两个整数时,这两种方法可以互换使用吗?如果是,为什么 Bash 有两种方法而不是一种方法?

shell bash history arithmetic test

37
推荐指数
3
解决办法
7万
查看次数

如何在脚本中添加算术变量

我想累积一个文件夹中包含的多个文件的行大小。我编写了以下脚本:

let a=0
let num=0
for i in folder/*
do
        num=`cat $i | wc -l`
        a=$a+$num
done
echo $a
Run Code Online (Sandbox Code Playgroud)

我在脚本末尾得到的是 123+234+432+... 而不是加法运算的结果。

shell shell-script arithmetic

35
推荐指数
2
解决办法
23万
查看次数

使用 bash 函数在命令行上做简单的数学运算:$1 除以 $2(可能使用 bc)

有时我需要将一个数除以另一个数。如果我可以为此定义一个 bash 函数,那就太好了。到目前为止,我被迫使用诸如

echo 'scale=25;65320/670' | bc
Run Code Online (Sandbox Code Playgroud)

但如果我能定义一个看起来像的 .bashrc 函数就太好了

divide () {
  bc -d $1 / $2
}
Run Code Online (Sandbox Code Playgroud)

command-line function arithmetic bc bashrc

33
推荐指数
4
解决办法
7万
查看次数