Shell expr

该博客介绍了在Unix shell中使用expr和$(())两种方法进行算术运算,包括比较和基本数学操作,并提供了一个bash脚本示例,用于验证输入的正整数并计算1到n的和。文章强调了转义符在expr命令中的重要性和$(())方法的便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

语法

方法一:expr $num1 operator $num2
方法二:$(($num1 operator $num2))

操作符号

在这里插入图片描述
在这里插入图片描述

示例

需要使用转义符,因为很多符合都在Unix有意义

num1=20
num2=100

expr $num1 \| $num2 # 20
expr $num1 \> $num2 # 0
expr $num1 \< $num2 # 1
expr $num1 + $num2 # 120
expr $num1 != $num2 # 1
expr $num1 = $num2 # 0
expr $num1 \* $num2 # 2000

# 方法二 $(())方法 不需要转义符
num3=$(($num1+$num2))
echo $num3 # 120
num3=$(($num1%$num2))
echo $num3 # 20
# = != 会出现报错,建议使用expr方法

练习

输入一个正整数
计算从1到n的求和

#!/bin/bash
#
while true
do
	read -p "请输入正整数:" num

	expr $num + 1 &> /dev/null

	if [ $? -eq 0 ]; then
		if [ `expr $num \> 0` -eq 1 ];then
			#echo "$num 是正整数"
			sum=0
			for((i=1;i<=$num;i++))
			do
				sum=`expr $sum + $i`
			done
			echo "1+...+$num = $sum"
			exit
		fi
	fi	
	echo "错误,不是正整数"
	continue
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小叶柏杉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值