Shell脚本小练习

news/2024/12/3 0:32:26/
cle class="baidu_pl">
cle_content" class="article_content clearfix">
content_views" class="htmledit_views">

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

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

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

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

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

center;">输出:c="https://i-blog.csdnimg.cn/direct/a9d8530f0c3c46c8850d47a4f673e141.png" />

ckquote>
  • <code>#!/bin/bashcode> 表示使用 Bash 解释器来运行该脚本。

  • **<code>read exprcode>**:读取用户输入的数学表达式࿰c;并将其存储到变量 <code>exprcode> 中。

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

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

ckquote>

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

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

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

结果:

<code>#!/bin/bashecho "请输入一个数字:"
read num
echo "您输入的数字是:$num"# 计算阶乘
result=1
for i in $(seq 1 $num); 
doresult=$((result * i))
done
echo "$num 的阶乘是:$result"code>

center;">输出:c="https://i-blog.csdnimg.cn/direct/bdb0999741e34eb0b6889c48595a82a2.png" />

ckquote>
  • <code>read numcode>:<code>readcode> 命令用于从标准输入读取数据࿰c;将输入的内容存储到变量 <code>numcode> 中。在这个脚本中࿰c;用户会输入一个数字࿰c;<code>readcode> 命令把它保存在 <code>numcode> 变量里。

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

ckquote>

3.拓展:

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

结果:

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

center;">输出:c="https://i-blog.csdnimg.cn/direct/cb53da7412a34ec39462e7a06c5e2bd6.png" />

center;">


http://www.ppmy.cn/news/1551884.html

相关文章

题目 3209: 蓝桥杯2024年第十五届省赛真题-好数

一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &#xff09;上的数字是偶数&#xff0c;我们就称之为“好数”。给定一个正整数 N&#xff0c;请计算从…

从数据孤岛到数据协同:企业如何构建安全的数据共享生态?

聚焦数据协作与隐私保护技术&#xff0c;探索企业如何在共享中保持安全性。 导读 在数字经济时代&#xff0c;数据已成为企业最宝贵的战略资源。然而&#xff0c;传统的"数据孤岛"模式正阻碍企业价值创新。本文将深度解析如何突破数据壁垒&#xff0c;构建安全高效的…

如何在 Debian 7 上设置 Apache 虚拟主机

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 虚拟主机 虚拟主机用于在单个 IP 地址上运行多个域。这对需要在一个虚拟专用服务器上运行多个站点的人特别有用——每个站点将根据用户…

C++小玩具1

好耶是新系列 #include<windows.h> #include<bits/stdc.h> using namespace std; POINT p; HANDLE hOutput GetStdHandle(STD_OUTPUT_HANDLE); HWND hGetForegroundWindow(); CONSOLE_FONT_INFO consoleCurrentFont; int X,Y,jg; bool f; void G(int x,int y){CO…

条件数:概念、矩阵中的应用及实际工业场景应用

一、引言 条件数是数值分析领域中的一个重要概念&#xff0c;它在理解线性方程组的敏感性、矩阵运算的稳定性等方面发挥着关键作用。无论是在纯数学理论研究&#xff0c;还是在解决实际工业问题的工程应用中&#xff0c;条件数都有着广泛的意义。 二、条件数的概念 &#xff…

基于Java Springboot奶茶点餐微信小程序

一、作品包含 源码数据库万字文档全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA,微信开发者工具 数据…

使用Python OpenCV实现图像形状检测

目录 一、环境准备 二、读取和预处理图像 读取图像 灰度化 滤波去噪 三、边缘检测 四、查找轮廓 五、绘制轮廓 六、形状分类 七、显示结果 八、完整代码示例 九、总结 图像形状检测是计算机视觉领域中的一项关键技术,广泛应用于工业自动化、机器人视觉、医学图像处…

路由器中继与桥接

一 . 背景 现在的路由器大多数已经开始支持多种网络连接模式&#xff0c;以下将以TP-Link迷你无线路由器为例进行展开介绍。在TP-Link迷你无线路由器上一般有AP&#xff08;接入点&#xff09;模式&#xff0c;Router&#xff08;无线路由&#xff09;模式&#xff0c;Repeate…