泷羽sec:shell作业

news2025/4/19 20:17:37

⼀、⽤Shell写⼀个计算器

#!/bin/bash

read -p "请输入表达式(格式为 操作数1 运算符 操作数2,如 5 + 3):" expression

a1=$(echo $expression | awk '{print $1}')

a2=$(echo $expression | awk '{print $2}')

a3=$(echo $expression | awk '{print $3}')

if [ "$a2" == "+" ]; then

    result=$(($a1 + $a3))

    echo "$a1 $a2 $a3 = $result"

elif [ "$a2" == "-" ]; then

    result=$(($a1 - $a3))

    echo "$a1 $a2 $a3 = $result"

elif [ "$a2" == "*" ]; then

    result=$(($a1 * $a3))

    echo "$a1 $a2 $a3 = $result"

elif [ "$a2" == "/" ]; then

    if [ $a3 -eq 0 ]; then

        echo "除数不能为0,请重新输入"

    else

        result=$(($a1 / $a3))

        echo "$a1 $a2 $a3 = $result"

    fi

else

    echo "不支持的运算符,请输入 +、-、*、/ 中的一种"

Fi

⼆、⽤Shell定义⼀个求n的阶乘函数

#!/bin/bash

# 定义计算阶乘的函数

factorial () {

    n=$1

    result=1

    if [ $n -eq 0 ]; then

        result=1

    else

        for ((i=1; i<=$n; i++)); do

            result=$(($result * $i))

        done

    fi

    echo $result

}

# 使用read命令获取用户输入的n值

read -p "请输入一个整数n,用于计算n的阶乘:" n

# 调用函数并输出结果

factorial $n

拓展1

写⼀个Shell脚本去筛选出eth0⽹卡的ipv4地址,并赋值⼀个变量输出

(可以去了解grep、awk文本处理工具)

#!/bin/bash

# 使用ip命令获取网络接口信息,通过grep筛选出包含eth0的行,再用awk提取出ipv4地址部分

ipv4_address=$(ip addr show eth0 | grep "inet " | awk '{print $2}' | cut -d/ -f1)

echo "eth0网卡的ipv4地址是: $ipv4_address"

拓展2:将上⾯的脚本编辑到计划任务中,并将echo输出内容重定向到⼀个固定⽂件中,计划时间随意⼀天⼀次也可以(了解LINUX中的计划任务)

使用 crontab -e 命令打开计划任务编辑界面(如果是首次使用此命令,系统会提示你选择一个文本编辑器,像 vimnano 等,按个人习惯选择即可)。

在打开的编辑文件中添加一行类似如下的内容(此处以每天凌晨 3 点执行脚本,并将输出重定向到 /home/kali/eth0_ip_log.txt 文件为例,你可按需修改时间及输出文件路径等细节):

 0 3 * * * /home/kali/桌面/4.sh > /home/kali/eth0_ip_log.txt 2>&1

拓展 3:做一个像 Windows 中的一样无限重启脚本(了解 LINUX 中的自启动)

#! /bin/bash

while true; do

    reboot

    sleep 10

done

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

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

相关文章

ETL工具观察:ETLCloud与MDM是什么关系?

一、什么是ETLCloud ETLCloud数据中台是一款高时效的数据集成平台&#xff0c;专注于解决大数据量和高合规要求环境下的数据集成需求。 工具特点 1.离线与实时集成&#xff1a;支持离线数据集成&#xff08;ETL、ELT&#xff09;和变更数据捕获&#xff08;CDC&#xff09;实…

轻NAS系统CasaOS设备安装小雅超集结合内网穿透实现自由访问海量资源

文章目录 前言1. 本地部署AList2. AList挂载网盘3. 部署小雅alist3.1 Token获取3.2 部署小雅3.3 挂载小雅alist到AList中 4. Cpolar内网穿透安装5. 创建公网地址6. 配置固定公网地址 前言 本文主要介绍如何在安装了轻NAS系统CasaOS的小主机中部署小雅AList&#xff0c;并使用A…

MATLAB 最小二乘点云拟合球 (89)

MATLAB 最小二乘点云拟合球 (89) 一、算法介绍二、算法实现1.代码2.结果这是缘,亦是最美的相见 一、算法介绍 球面拟合算法是一种通过数学方法将一组三维点(通常在三维空间中分布)拟合到一个理想的球形表面上。这个过程通常涉及使用最小二乘法来最小化实际数据点与拟合的…

【分页查询】.NET开源 ORM 框架 SqlSugar 系列

&#x1f4a5; .NET开源 ORM 框架 SqlSugar 系列 &#x1f389;&#x1f389;&#x1f389; 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…

WebStorm快捷键保持跟Idea一致

修改连续行局部多选 在WebStorm中同时按下ctrl alt s&#xff1b; 选择KeyMap 输入Column Selection Mode选择快捷键, 右键选择Add Mouse Shortcut 按下alt 鼠标左键 如果出现占用的情况&#xff0c;直接删除其他使用该快捷键的地方即可&#xff1b; 修改跨行局部多选 在…

好书推荐《LangChain大模型AI应用开发实践》

Hi大家好&#xff0c;我是码银~ 今天我要给大家带来一本特别的书籍推荐——《LangChain大模型AI应用开发实践》。如果你对人工智能、自然语言处理或者正在寻找一种高效构建AI应用的方法&#xff0c;那么这本书绝对不容错过。 这本书是由哔哩哔哩知名UP主【老陈打码】&#xff0…

python使用openpyxl处理excel

文章目录 一、写在前面1、安装openpyxl2、认识excel窗口 二、基本使用1、打开excel2、获取sheet表格3、获取sheet表格 尺寸4、获取单元格数据5、获取区域单元格数据6、sheet.iter_rows()方法7、修改单元格的值8、向表格中插入行数据9、实战&#xff1a;合并多个excel 三、获取E…

Spire.PDF for .NET【页面设置】演示:旋放大 PDF 边距而不改变页面大小

PDF 页边距是正文内容和页面边缘之间的空白。与 Word 不同&#xff0c;PDF 文档中的页边距不易修改&#xff0c;因为 Adobe 不提供任何功能供用户自由操作页边距。但是&#xff0c;您可以更改页面缩放比例&#xff08;放大/压缩内容&#xff09;或裁剪页面以获得合适的页边距。…

SpringMVC:参数传递之日期类型参数传递

环境准备和参数传递请见&#xff1a;SpringMVC参数传递环境准备 日期类型比较特殊&#xff0c;因为对于日期的格式有N多中输入方式&#xff0c;比如: 2088-08-182088/08/1808/18/2088… 针对这么多日期格式&#xff0c;SpringMVC该如何接收&#xff0c;它能很好的处理日期类…

驱动篇的开端

准备 在做之后的动作前&#xff0c;因为win7及其以上的版本默认是不支持DbgPrint&#xff08;大家暂时理解为内核版的printf&#xff09;的打印&#xff0c;所以&#xff0c;为了方便我们的调试&#xff0c;我们先要修改一下注册表 创建一个reg文件然后运行 Windows Registr…

Spring 那些事【2】SpringCache 简介及应用?

一、简介 SpringCache 是Spring 提供的一整套的缓存解决方案&#xff0c;他不是具体的缓存实现&#xff0c;它只提供了一整套的接口和代码规范、配置、注解等&#xff0c;用于整合各种缓存方案。 Spring 从 3.1 开始定义了 org.springframework.cache.Cache 和 org.springfra…

C语言:指针与数组

一、. 数组名的理解 int arr[5] { 0,1,2,3,4 }; int* p &arr[0]; 在之前我们知道要取一个数组的首元素地址就可以使用&arr[0]&#xff0c;但其实数组名本身就是地址&#xff0c;而且是数组首元素的地址。在下图中我们就通过测试看出&#xff0c;结果确实如此。 可是…

2023年04-至今:宏图一号L2级系统几何校正影像(1、3、5m)

目录 简介 摘要 代码 网址推荐 机器学习 2023年04-至今&#xff1a;宏图一号L2级系统几何校正影像&#xff08;1、3、5m&#xff09; 简介 作为航天宏图“女娲星座”建设计划的首发卫星&#xff0c;航天宏图-1号可获取0.5米-5米的分辨率影像&#xff0c;具备高精度地形测…

挑战用React封装100个组件【009】

Hello&#xff0c;大家好&#xff0c;今天我挑战的组件是这样的&#xff01; 欢迎大家把项目拉下来使用哦&#xff01; 项目地址&#xff1a; https://github.com/hismeyy/react-component-100 今天还是用到了react-icons。这里就不过多介绍啦&#xff0c;大家可以在前面的挑战…

【每日刷题】Day162

【每日刷题】Day162 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 3302. 字典序最小的合法序列 - 力扣&#xff08;LeetCode&#xff09; 2. 44. 通配符匹配 - 力扣&…

什么工具可以解决团队协作障碍?

团队协作是现代工作环境中至关重要的一部分&#xff0c;但在实际操作中&#xff0c;很多团队面临着协作中的各种障碍。这些障碍不仅影响工作效率&#xff0c;也可能阻碍团队成员之间的合作与信任建设。根据Patrick Lencioni在《团队协作的五大障碍》中的理论&#xff0c;团队协…

基于Java Springboot线上约拍摄影预约微信小程序

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

消息中间件-Kafka1-实现原理

消息中间件-Kafka 一、kafka简介 1、概念 Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区&#xff08;partition&#xff09;、多副本的&#xff08;replica&#xff09;&#xff0c;基于zookeeper协调的分布式消息系统&#xff0c;它的最大的特性就是可以…

使用 Python 中的 TripoSR 根据图像创建 3D 对象

使用 Python 中的 TripoSR 根据图像创建 3D 对象 1. 效果图2. 步骤图像到 3D 对象设置环境导入必要的库设置设备创建计时器实用程序上传并准备图像处理输入图像生成 3D 模型并渲染下载.stl 文件展示结果3. 源码4. 遇到的问题及解决参考这篇博客将引导如何使用Python 及 TripoSR…

【SKFramework框架核心模块】3-3、调试器

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…