当前位置: 首页 > 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

http://www.lryc.cn/news/210990.html

相关文章:

  • 【Java 进阶篇】解决Java Web应用中请求参数中文乱码问题
  • 51单片机-点阵屏led
  • Angular-03:组件模板
  • mysql 操作慢查询日志
  • illuminate/database 使用 二
  • 二叉树的概念
  • SpringCloud之Eureka的学习【详细】
  • 学习ftp
  • Android笔记(九):Compose组件的状态(一)
  • 3.2. onnx export multi_batch
  • 探索低代码PaaS平台的优势与选择原因
  • AD教程(一)工程组成及创建
  • SAP业务从ECC升级到SAP S/4HANA有哪些变化?有哪些功能得到增强?
  • 常用conda和pip命令总结
  • 【计算机网络】路由器的工作原理
  • 队列概念|循环队列的实现
  • 监控数据控中的数据表
  • 进程替换..
  • M1安装OpenPLC Editor
  • STM32F10xx 存储器和总线架构
  • 并发编程
  • Lauterbach使用指南之RunTime功能
  • GaussDB数据库管理系统介绍
  • 使用docker部署lnmp多站点
  • 实例详解:Java使用JWT和Redis实现高效单点登录(SSO)
  • SQL中使用ROLLUP和CUBE函数轻松生成汇总行
  • CentOS 7 安装和配置java环境
  • 「实验记录」CS144 Lab0 networking warmup
  • html5怎么实现语音搜索
  • 吴恩达《机器学习》1-2:什么是机器学习?