
shell计算(一)
发布日期:2021-05-08 04:30:46
浏览次数:27
分类:精选文章
本文共 1599 字,大约阅读时间需要 5 分钟。
说明:该篇主要是'算数运算命令''(())'的用法强调:'方法很多,精通一种即可,能看懂其他的即可'
一 算数运算符
二 算数运算命令
三 实战
(1)基础语法
(2)简单数值计算
(3)混合计算
'需求':计算1+2...+100的和
细节:'(())'里面两端可以有任何的空格,为了增强'可读性',一般'两端各留一个空格',变量和运算符有无空格也无所谓
(4)特殊运算
说明:在(())中'使用变量'可以去掉'变量前的$符号',但是加上$符号也不会出错,但是'输出计算结果时必须加上$'
(5)比较和判断
#!/bin/bashif (( 3>2 && 8==8 ));then echo "Hello Java"fi
说明两点
(1)大小比较的结果--->从'自己理解角度'(boolean,恰恰与实际相反)-->'1表示真,0表示假'(2)涉及的数字和变量必须是整数,因为(())'只针对整数计算的'
(5)++和--特殊运算符
备注:'从左到右执行,碰到符号则计算'
(6)小脚本计算加减乘除
#!/bin/bash# (1)脚本传参进行赋值a=$1b=$2# (2)计算echo "a+b=$(( a+b ))"echo "a-b=$(( a-b ))"echo "a*b=$(( a*b ))"echo "a/b=$(( a/b ))"echo "a%b=$(( a%b ))"echo "a**b=$(( a**b ))"
(7)增强上面案例的健壮性
#!/bin/bashset -u# (1)不符合要求,打印提示信息print_usage(){ # 非整数 printf "Please enter an interger\n" # 退出 exit 1}# (2)read接受参数,并给予提示信息read -p "Please input first number: " firstnum# (3)判断用户输入是否是整数(-n判断字符串否是非空)if [ -n "`echo $firstnum| sed 's#[0-9]##g'`" ];then # 如果是非空表示输入的不是整数,则打印提示信息,并退出 print_usagefi# (3)继续输入运算符read -p "Please input the operations: " operationsif [ "${operations}" != "+" ] && [ "${operations}" != "-" ] && [ "${operations}" != "*" ] && [ "${operations}" != "/" ];then echo "Please use one of {+|-|*|/} " exit 2fi# (4)判断用户输入是否是整数read -p "Please input secondnumber: " secondnumif [ -n "`echo $secondnum| sed 's#[0-9]##g'`" ];then # 如果是非空表示输入的不是整数,则打印提示信息,并退出 print_usagefi# (5)最终的计算echo ""${firstnum}${operations}${secondnum}=$(( firstnum ${operations} secondnum))
报错提示
这种方式'报错',印证了一点'只有数字变量可以不加$'echo ""${firstnum}${operations}${secondnum}=$(( firstnum operations secondnum))
掌握知识
(1) 判断用户输入是否是整数(2) read变量读取外部的参数
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月08日 02时38分45秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
12张图打开JMeter体系结构全局视角
2021-05-09
Spring Boot 2.x基础教程:构建RESTful API与单元测试
2021-05-09
[UWP 自定义控件]了解模板化控件(1):基础知识
2021-05-09
UWP 自定义控件:了解模板化控件 系列文章
2021-05-09
[UWP]从头开始创建并发布一个番茄钟
2021-05-09
WinUI 3 Preview 3 发布了,再一次试试它的性能
2021-05-09
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
2021-05-09
List数组排序
2021-05-09
VMware vSphere 离线虚拟机安装 BIND 9
2021-05-09
dojo/request模块整体架构解析
2021-05-09
Javascript定时器学习笔记
2021-05-09
dojo的发展历史
2021-05-09
Python存储系统(Redis)
2021-05-09
C语言指针收藏
2021-05-09
C#搞个跨平台的桌面NES游戏模拟器
2021-05-09
手把手教你安装Eclipse最新版本的详细教程 (非常详细,非常实用)
2021-05-09
《带你装B,带你飞》pytest成魔之路4 - fixture 之大解剖
2021-05-09
互联网App应用程序测试流程及测试总结
2021-05-09
根据轨迹分析出用户家在哪
2021-05-09
PostgreSQL查询表名称及表结构
2021-05-09