当前位置: 首页 > news >正文

shell中的运算

目录

1.运算符号

2.运算指令

练习


1.运算符号

运算符号意义
+加法
-减法
*乘法
/除法
%除法后的余数
**乘方
++自加一
- -自减一
<小于
<=小于等于
>大于
>=大于等于
=等于
+=j+=i ->j=j+i
*=j*=i->j=j*i
/=j/=i->j=j/i
%=j%=i->j=j%i

2.运算指令

(())   		//((a=1+2))let 		//let a=1+2        let是一个用于数学计算的Bash shell内置命令,它可以对整数进行加、减、乘、除等操作,并且还可以将计算结果赋值给一个变量expr	        //expr 1 + 2  -> 3     expr是一个用于数学计算的UNIX命令,它可以对整数进行加、减、乘、除等操作bc                //计算器bc << EOF            //后续输入作为bc命令中的内容,并在遇到EOF时结束输入,然后将其用作bc命令的输入
1+2
EOF$[] 	       //echo $[1+2]printf '%0.2f' .3 ==== 0.30
printf '%0.3f' .3 ====0.300
printf '%0.4f' .3 ====0.3000

练习

1分10秒的倒计时

SEC=10
MIN=1
SECS=$[$MIN*60+$SEC]
for ((;SECS>0;SECS--))
doSHOW_SEC=$[$SECS%60]SHOW_MIN=$[$SECS/60]if [ "$SHOW_SEC" -lt "10" ]thenecho -ne "After $SHOW_MIN:0$SHOW_SEC is end"elseecho -ne "After $SHOW_MIN:$SHOW_SEC is end"fisleep 1echo -ne "\r"
done

计算机随机生成一个1-19之间的整数。

玩家输入数字进行猜测,若猜测正确则游戏结束,若猜测错误则根据实际情况提示“猜小了”或者“猜大了”。

玩家可以输入“exit”结束游戏。

lucky_number=$(($RANDOM % 20))
while true
doread -p "please input your lucky number(0-19):" GUESSif [ "$GUESS" = "exit" ]thenecho "exit"exitelif [ "$GUESS" -lt "$lucky_number" ]thenecho "too small"elif [ "$GUESS" -gt "$lucky_number" ]thenecho "too big"elif [ "$GUESS" = "$lucky_number" ]thenecho "Bingo!!!" && exitfi
done

编写一个程序实现网络设备流量的实时监控

要求:支持命令行参数传入网络设备的名称。

每秒钟输出该网络设备的流入流出流量,以byte/s为单位

if [ -z "$1" ]
thenecho please input net device following $0 !!
elif ifconfig $1 &> /dev/null
thenwhile truedoRS1=$(awk "/$1/{print \$2}" /proc/net/dev)TR1=$(awk "/$1/{print \$10}" /proc/net/dev)sleep 1RS2=$(awk "/$1/{print \$2}" /proc/net/dev)TR2=$(awk "/$1/{print \$10}" /proc/net/dev)echo -ne "Receive: $[$RS2-$RS1], Transmit: $[$TR2-TR1]"echo -ne "\r"done
elseecho no
fi

  1. 调用hostnamectl命令设置主机名为node<ID>.su.org
  2. 将IP地址设置为192.168.81.<ID>
  3. node<ID>.su.org192.168.81.<ID>写入/etc/hosts文件中。
  4. 统计当前主机上有多少个网络设备,如果大于1,则提示用户选择要配置的设备。
  5. 如果用户要为某个设备配置IP,则提示用户输入该设备的IP地址,并将其写入到对应的网络配置文件中。
  6. 最后,使用nmcli重新加载网络连接并启用指定的网络设备。
if [ -z "1" ]
thenecho Please input ID following $0 !!
elif echo $1 | grep -E '^[[:digit:]]{1,}$'
thenecho Please input A number following $0 !!hostnamectl set-hostname node$1.su.orgecho 192.168.81.$1 node$1.su.org >> /etc/hostsDEV_COUNT=`nmcli device show | awk 'BEGIN{N=0}/GENERAL.DEVICE/&&!/lo/{N++}END{print N}'`[ "$DEV_COUNT" -gt "1" ]&&{for DEVICE in `nmcli device show | awk '/GENERAL.DEVICE/&&!/lo/{print $2}'`doread -p "Do you want set $DEVICE: " STATEcase $STATE inyes|YES|Y|y)read -p "Please input ip address: " IP
cat > /etc/sysconfig/network-scripts/ifcfg-$DEVICE <<EOF
DEVICE=$DEVICE
ONBOOT=yes
BOOTPROTO=none
IPADDR=$IP
PREFIX=24
NAME=$DEVICE
DNS1=114.114.114.114
EOF;;no|NO|n|N);;*)esacnmcli connection reloadnmcli connection up $DEVICEdone
}||{cat > /etc/sysconfig/network-scripts/ifcfg-$DEVICE <<EOF
DEVICE=$DEVICE
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.81.$1
PREFIX=24
NAME=$DEVICE
DNS1=114.114.114.114
EOFnmcli connection reloadnmcli connection up $DEVICE
}
fi

相关文章:

  • FPGA时序分析与约束(8)——时序引擎
  • KMP算法详解
  • VBA宏查找替换目录下所有Word文档中指定字符串
  • VScode 自定义主题各参数解析
  • 记录CMake一键编译和生成的指令
  • Android 主题 vs 样式
  • vscode markdown 使用技巧 -- 如何快速打出一个Tab 或多个空格
  • npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
  • 阻塞队列.
  • 【PC电脑windows-学习样例generic_gpio-ESP32的GPIO程序-基础样例学习】
  • 3 ALS算法的优化
  • NodeJS回调地狱及Promise优化
  • 【洛谷 P5738】【深基7.例4】歌唱比赛 题解(映射)
  • 并发编程 -常用并发设计模式
  • 面向服务架构-架构师(六十四)
  • .pyc 想到的一些问题
  • 「译」Node.js Streams 基础
  • 30天自制操作系统-2
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Bytom交易说明(账户管理模式)
  • canvas 高仿 Apple Watch 表盘
  • git 常用命令
  • Git同步原始仓库到Fork仓库中
  • HTTP--网络协议分层,http历史(二)
  • javascript从右向左截取指定位数字符的3种方法
  • java中的hashCode
  • Netty 4.1 源代码学习:线程模型
  • Python学习笔记 字符串拼接
  • 大快搜索数据爬虫技术实例安装教学篇
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 关于字符编码你应该知道的事情
  • 记录:CentOS7.2配置LNMP环境记录
  • 跨域
  • 如何实现 font-size 的响应式
  • 数据结构java版之冒泡排序及优化
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 小程序开发之路(一)
  • 一个JAVA程序员成长之路分享
  • #### go map 底层结构 ####
  • ###项目技术发展史
  • #HarmonyOS:Web组件的使用
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (2)STL算法之元素计数
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (强烈推荐)移动端音视频从零到上手(上)
  • (转)关于多人操作数据的处理策略
  • .net 流——流的类型体系简单介绍
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET企业级应用架构设计系列之技术选型
  • /*在DataTable中更新、删除数据*/
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • ::before和::after 常见的用法
  • [4.9福建四校联考]
  • [ACTF2020 新生赛]Include