Questions tagged «arithmetic»

该标记适用于与数学运算有关的所有事情。因此,如果您想问一个关于在“ awk”中进行计算的问题,或者您有一个关于“ bc”的问题,那么使用此标签是正确的。

16
如何使用bash或其他语言/框架进行整数和浮点计算?
按echo "20+5"字面使用会产生文字“ 20+5”。 25在这种情况下,我可以使用什么命令来获取数字总和? 另外,仅使用bash进行浮点运算的最简单方法是什么?例如,echo $((3224/3807.0))打印0:(。 我正在使用基本命令外壳程序(“命令行”)本身或通过使用命令行中可用的语言来寻找答案。



3
重击:双等于vs -eq
我正在bash中进行整数比较(试图查看用户是否以root用户身份运行),并且发现了两种不同的实现方式: 双重等于: if [ $UID == 0 ] then fi -eq if [ $UID -eq 0 ] then fi 我知道bash中没有> =或<=,只有-ge和-le,所以为什么==会有一个-eq? 双方比较的方式是否有所不同?
47 bash  shell  arithmetic 

6
如何使用花括号展开创建前导零的序列
当我使用以下命令时,将得到预期的结果: $ echo {8..10} 8 9 10 我如何以一种简单的方式使用该大括号扩展,以获取以下输出? $ echo {8..10} 08 09 10 我现在可以使用seq(没有尝试过)获得它,但这不是我想要的。 有用的信息可能是我仅限于此bash版本。(如果您有zsh解决方案,但没有bash解决方案,请也分享) $ bash -version GNU bash, version 3.2.51(1)-release (x86_64-suse-linux-gnu)


2
在bash中,美元符号和方括号$ […]意味着什么?
似乎$[expr]像一样执行算术扩展$((expr))。但是我$[在bash手册中找不到任何提及。该命令没有结果: gunzip -c /usr/share/man/man1/bash.1.gz | grep -E '\$\[' 这个运算符是什么,其行为在任何地方都标准化了吗? 我的bash版本:GNU bash版本3.2.51(1)-发行版(x86_64-apple-darwin13)
34 bash  arithmetic 


5
检查$ REPLY是否在数字范围内
我正在使用Bash编写Linux的外壳脚本,以将任何视频文件转换为MP4。为此,我使用avconvwith libvorbis进行音频。 在我的脚本中,我对用户有一个问题: read -p "- Audio Quality [scale from -2 to 10] ? " if [ -n "$REPLY" ] ; then ABITRATE="-aq $REPLY" fi 我的“ ABITRATE”字符串进入最终的avconv命令行。 但我想让用户有机会用Kb(千比特)的值来回答这个问题,并将其转换为libvorbis使用的标度。“从-2到10的比例”是这样的: Quality Kbit/s Normalization ----------------------------- -2 ~32 y -1 ~48 y 0 ~64 y 1 ~80 y 2 ~96 y 3 ~112 y …


6
如何在脚本中添加算术变量
我想累积一个文件夹中包含的许多文件的行大小。我写了以下脚本: let a=0 let num=0 for i in folder/* do num=`cat $i | wc -l` a=$a+$num done echo $a 我在脚本末尾得到的是123 + 234 + 432 + ...,而不是加法算术运算的结果。



3
比较整数:算术表达式或条件表达式
在Bash中,可以使用条件表达式比较两个整数 arg1 OP arg2 OP是一个-eq,-ne,-lt,-le,-gt,或-ge。如果arg1分别等于,不等于,小于,等于或大于arg2,则这些算术二进制运算符返回true 。Arg1和arg2可以是正整数或负整数。 或算术表达式: <= >= < > 比较 == != 平等与不平等 为什么我们有两种不同的方法来比较两个整数?什么时候使用? 例如,[[ 3 -lt 2 ]]使用条件表达式,并(( 3 < 2 ))使用算术表达式。当比较为真时,两者都返回0 比较两个整数时,这两种方法是否可以始终互换使用?如果是,为什么Bash有两种方法而不是一种?

4
当let或expr的值为0时,bash -e退出
我有一个设置-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" …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.