shell中的运算

news2024/11/23 15:49:18

目录

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--))
do
  SHOW_SEC=$[$SECS%60]
  SHOW_MIN=$[$SECS/60]
  if [ "$SHOW_SEC" -lt "10" ]
  then
    echo -ne "After $SHOW_MIN:0$SHOW_SEC is end"
  else
    echo -ne "After $SHOW_MIN:$SHOW_SEC is end"
  fi
  sleep 1
  echo -ne "\r"
done

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

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

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

lucky_number=$(($RANDOM % 20))
while true
do
  read -p "please input your lucky number(0-19):" GUESS
  if [ "$GUESS" = "exit" ]
  then
    echo "exit"
    exit
  elif [ "$GUESS" -lt "$lucky_number" ]
  then
    echo "too small"
  elif [ "$GUESS" -gt "$lucky_number" ]
  then
    echo "too big"
  elif [ "$GUESS" = "$lucky_number" ]
  then
    echo "Bingo!!!" && exit
  fi
done

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

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

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

if [ -z "$1" ]
then
        echo please input net device following $0 !!
elif ifconfig $1 &> /dev/null
then
        while true
        do
                RS1=$(awk "/$1/{print \$2}" /proc/net/dev)
                TR1=$(awk "/$1/{print \$10}" /proc/net/dev)
                sleep 1
                RS2=$(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
else
        echo 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" ]
then
  echo Please input ID following $0 !!
elif echo $1 | grep -E '^[[:digit:]]{1,}$'
then
  echo Please input A number following $0 !!
  hostnamectl set-hostname node$1.su.org
  echo 192.168.81.$1 node$1.su.org >> /etc/hosts
  DEV_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}'`
  do
    read -p "Do you want set $DEVICE: " STATE
    case $STATE in
      yes|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)
    ;;
    *)
    esac
    nmcli connection reload
    nmcli connection up $DEVICE
  done
}||{

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
EOF
  nmcli connection reload
  nmcli connection up $DEVICE
}
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1148091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript_Pig Game保存当前分数

上个文章我们基本上完成了摇色子和切换当前玩家的功能。 现在我们开始写用户选择不再摇骰子的话&#xff0c;我们将用户的当前分数存入到持有分数中&#xff01; ● 首先我们应该利用一个数组去存储两个用户的分数 const scores [0, 0];● 接着我们利用数组来对分数进行累…

SHCTF2023 山河CTF Reverse方向[Week1]全WP 详解

文章目录 [WEEK1]ez_asm[WEEK1]easy_re[WEEK1]seed[WEEK1]signin[WEEK1]easy_math[WEEK1]ez_apk [WEEK1]ez_asm 从上往下读&#xff0c;第一处是xor 1Eh&#xff0c;第二处是sub 0Ah&#xff1b;逆向一下先加0A后异或1E 写个EXP data "nhuo[M7mc7uhc$7midgbTf7$7%#ubf7 …

nginx请求时找路径问题

nginx请求时找路径问题 你是否遇到过这样的情况&#xff1a; 当你安装了nginx的时候&#xff0c;为nginx配置了如下的location&#xff0c;想要去访问路径下面的内容&#xff0c;可是总是出现404&#xff0c;找不到文件&#xff0c;这是什么原因呢&#xff0c;今天我们就来解…

OpenAI : GPT-4 发布更新,整合了画图、插件、代码等能力

本心、输入输出、结果 文章目录 OpenAI : GPT-4 发布更新,整合了画图、插件、代码等能力前言GPT-4 的复合能力更新中的 automatic (自动的)获取天气我们看看讯飞星火的表现放大后内容并不是我们想要的我们看看百度文心一言的表现弘扬爱国精神OpenAI : GPT-4 发布更新,整合…

CSS3中的字体和文本样式

CSS3优化了CSS 2.1的字体和文本属性&#xff0c;同时新增了各种文字特效&#xff0c;使网页文字更具表现力和感染力&#xff0c;丰富了网页设计效果&#xff0c;如自定义字体类型、更多的色彩模式、文本阴影、生态生成内容、各种特殊值、函数等。 1、字体样式 字体样式包括类…

画个哆啦A梦吧

可自定义名字 源代码 #!/usr/bin/python # -*- coding:utf-8 -*-# from turtle import * import turtle as t# 无轨迹跳跃 def my_goto(x, y):t.penup()t.goto(x, y

多个相同地址的I2C设备,如何挂载在同一条总线上

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff08;2&#xff0…

提高抖音小店用户黏性和商品销量的有效策略

抖音小店是抖音平台上的电商模式&#xff0c;用户可以在抖音上购买各类商品。要提高用户黏性和商品销量&#xff0c;四川不若与众帮你整理了需要注意以下几个方面。 首先&#xff0c;提供优质的商品和服务。在抖音小店中&#xff0c;用户会通过观看商品展示视频和用户评价来选…

M1安装OpenPLC Editor

下载OpenPLC Editor for macOS.zip文件后&#xff0c;使用tar -zvxf命令解压&#xff0c;然后将"OpenPLC Editor"拖入到"应用程序"文件夹 右键点击"OpenPLC Editor"&#xff0c;打开这个""文件&#xff0c;替换为以下内容 #!/bin/bash…

No174.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

Godot 官方2D C#重构(4):TileMap进阶使用

文章目录 前言完成内容项目节点结构TileMap设置图片资源备选图片添加物理碰撞添加y轴遮罩判断Y Sort Enable是干什么的&#xff1f; 脚本代码 前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 完成内容 项目节点结构 TileMap设置 图片资源 备选图…

git 推送到github远程仓库细节处理(全网最良心)

我查看了很多网上的教程都不是很好 我们先在github创建一个仓库&#xff0c;且初始化 readme 我们到本地文件初始化仓库 添加远程仓库 这时候我们就 git add . , git commit ,再准备git push 的时候 显示没有指定远程的分支 我们按照提示操作 提示我们要先git pull 提示我…

39 :C语言与汇编语言混合编程

目录 编译过程 编译小知识 C语言中函数是如何进行调用的&#xff1f; 寄存器压栈过程 C语言函数调用过程 函数调用过程 函数返回过程 C语言中的调用约定 gcc编译器使用的栈帧布局 ebp是函数调用以及函数返回的核心寄存器 用汇编语言编写Linux应用程序 交互关键字 …

windows下基于vscode的ssh服务远程连接ubuntu服务器

Ubuntu端配置 1.确保ubuntu端已启用ssh服务 首先&#xff0c;安装ssh服务 sudo apt-get install openssh-server 安装后&#xff0c;打开ssh服务 sudo service ssh start 如果显示有sshd就说明成功了。 判断是否成功打开 ps -e|grep ssh 同时也可以通过如下方式确保ss…

Spring-AOP概念及相关术语

AOP概念 一、概述1、相关术语2、作用 二、基于注解的AOP1、准备工作2、各种通知3、切入点表达式语法4、重用切入点表达式5、获取通知的相关信息6、切面的优先级 一、概述 回顾&#xff1a; 什么是面向对象 什么是AOP AOP&#xff08;Aspect Oriented Programming&#xff09;是…

STM32F103的GPIO

文章目录 STM32F103的地址STM32F103的GPIOA的地址推算 STM32F103的地址 GPIO 都是挂载在 APB2 总线之上。 STM32F103的GPIOA的地址推算 &#xff08;出自STM32F103开发指南P127&#xff09; GPIOA 的 7 个寄存器都是 32 位的&#xff0c;所以每个寄存器占有 4个地址&#x…

Web入门笔记

Web入门笔记 HTTP协议 超文本传输协议 规定了浏览器和服务器之间数据传输的规则&#xff0c;请问数据和响应数据的格式 基于TCP请求-响应模式一次请求对应一次响应无状态的协议 请问数据格式 浏览器版本&#xff1a;解决浏览器兼容问题。GET请求体&#xff1a;存放请求参数…

缓解大模型幻觉问题的解决方案

本文记录大模型幻觉问题的相关内容。 参考&#xff1a;Mitigating LLM Hallucinations: a multifaceted approach 地址&#xff1a;https://amatriain.net/blog/hallucinations &#xff08;图&#xff1a;解决大模型幻觉的不同方式&#xff09; 什么是幻觉&#xff1f; 幻觉…

木疙瘩的进度动画实现文字逐个出现路径描边

第一步 创建素材 第二步 插入进度动画 第三步&#xff0c;在最后一帧插入关键帧即可&#xff01;