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

Shell脚本小练习

学习了这么长时间Shell脚本,总得来一次小小的练习吧,那么请看下文!

1.用Shell写一个小计算器。

通过read命令获取用户输入的表达式,表达式的格式设定为操作数1 运算符 操作数2,例如5+3,然后利用设计的脚本输出运算结果。

要求:实现加、减、乘、除运算

#!/bin/bash
echo "请输入表达式(格式:操作数1 运算符 操作数2,例如 5 + 3):"
read expr
result=$(echo "$expr" | bc)
echo "运算结果是:$result"

输出:

  • #!/bin/bash 表示使用 Bash 解释器来运行该脚本。

  • **read expr**:读取用户输入的数学表达式,并将其存储到变量 expr 中。

  • **result=$(echo "$expr" | bc)**:将用户输入的表达式 $expr 通过管道传递给 bc 工具,计算结果并存储在 result 变量中。

  • **echo "运算结果是:$result"**:输出运算结果。

2.用Shell定义一个求n的阶乘函数

定义一个计算n的阶乘的函数(含参函数、if判断、for循环)

写一个脚本去调用在(三、封装函数)中写的求阶乘的函数,并定义一个变量n可用read交互输入,最终输出n的阶乘

结果:

#!/bin/bash

echo "请输入一个数字:"
read num
echo "您输入的数字是:$num"

# 计算阶乘
result=1
for i in $(seq 1 $num); 
do
    result=$((result * i))
done
echo "$num 的阶乘是:$result"

输出:

  • read num:read 命令用于从标准输入读取数据,将输入的内容存储到变量 num 中。在这个脚本中,用户会输入一个数字,read 命令把它保存在 num 变量里。

  • 使用seq命令生成从1到$num的序列。用for循环进行遍历每个数字,每次循环时,会将result与当前的i相乘,逐步计算阶乘

3.拓展:

  • 写一个Shell脚本去筛选出eth0网卡的ipv4地址,并赋值一个变量输出(可以去了解grep、awk文本处理工具)

结果:

#!/bin/bash
# 获取 eth0 网卡的 IPv4 地址
ip_address=$(ifconfig eth0 | grep 'inet ' | awk '{print $2}')
# 输出结果
echo "eth0 网卡的 IPv4 地址是:$ip_address"

输出:


http://www.kler.cn/a/416938.html

相关文章:

  • Docker 在 Java 开发中的实践与应用:解锁高效容器化部署新姿势
  • 3.4 学习UVM中的uvm_monitor类分为几步?
  • PySide(PyQT)的 QGraphicsScene 中检测回车键
  • VSCode 下载与使用教程:附百度网盘地址
  • 如何在Android Studio中开发一个简单的Android应用?
  • 基于yolov11的阿尔兹海默症严重程度检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • GitLab: You cannot create a branch with a SHA-1 or SHA-256 branch name
  • java基础概念43:Lambda表达式
  • [Ubuntu] linux之Ubuntu18.04的下载及在虚拟机中详细安装过程(附有下载链接)
  • 计算机基础 原码反码补码问题
  • 大数据新视界 -- 大数据大厂之 Hive 数据质量监控:实时监测异常数据(下)(18/ 30)
  • 暴雨发布首款兆芯KX-7000信创笔记本
  • Android 12系统源码_RRO机制(一)Runtime Resource Overlay机制实践
  • RFID资产管理系统的应用与未来发展
  • 初学git报错处理 | 从IDEA远程拉取、创建分支中“clone failed”“couldn‘t checkout”
  • otter 高可用策略
  • 聚云科技×亚马逊云科技:打通生成式AI落地最后一公里
  • javaScript数据类型存储
  • 基于Java Springboot个人记账之财来财往微信小程序
  • django开发中html继承模板样式
  • Vue程序调试和排错技巧
  • Oracle 深入学习 Part 10: Managing Undo Data(管理Undo数据)
  • Java 上机实践9(常用实用类)
  • .net6,C#语法excel、zip文件下载
  • 无人机飞手人才培养技术方案详解
  • 使用Python编写Windows系统服务管理脚本,主要用于管理mysql、postgresql等服务