欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 macOS(以及大多数类Unix系统)的shell中,进行算术运算通常使用expr
命令、$(( ))
扩展或者let
命令(尽管let
在某些shell中可能不是内置命令,但在bash中可用)。下面是一些示例,展示如何在shell脚本或命令行中执行字符串(当它们代表数字时)的算术运算。
$(( ))
扩展这是bash(和许多其他现代shell)中进行算术运算的最常见和推荐的方式。
bash复制代码#!/bin/bash
# 定义两个变量 num1="10" num2="20"
# 使用$(( ))进行算术运算 sum=$((num1 + num2))
echo "The sum is: $sum"
在这个例子中,num1
和num2
虽然是字符串(被双引号包围),但在$(( ))
扩展中它们会被当作数字处理。
expr
命令expr
是一个用于评估表达式的命令行工具,它也可以用于算术运算。但是,需要注意的是,使用expr
时,操作数和操作符之间必须有空格分隔。
bash复制代码#!/bin/bash
# 定义两个变量 num1="10" num2="20"
# 使用expr进行算术运算 sum=$(expr $num1 + $num2)
echo "The sum is: $sum"
let
命令(在bash中)虽然let
不是所有shell都支持的,但它在bash中是可用的,并且可以用于执行算术运算。
bash复制代码#!/bin/bash
# 定义两个变量 num1=10 #可以使用 num1="10" num2=20 #可以使用 num2="20"
# 使用let进行算术运算 let sum=num1+num2
echo "The sum is: $sum"
注意,在使用let
时,通常不需要将变量值放在引号中,因为let
会进行算术运算而不是字符串操作。但是,如果你使用变量名而不是直接的值,变量名前的$
符号是可选的(但在实践中通常会使用它以避免混淆)。
对于bash和类似的现代shell,推荐使用$(( ))
扩展进行算术运算,因为它清晰、强大且易于使用。
expr
命令是一个更传统的选择,但在使用时需要特别注意空格的要求。
let
命令在某些shell中可能不可用,但在bash中它是一个有用的选项,尽管在复杂的表达式中可能不如$(( ))
扩展那么灵活。