【网络云计算】2024第50周-每日【2024/12/13】小测-理论-写10个Bash Shell脚本-解析

news/2024/12/18 19:59:17/

文章目录

  • 1. 计算1到100的和
  • 2. 列出当前目录下所有文件和文件夹
  • 3. 检查文件是否存在
  • 4. 备份文件到指定目录(简单示例)
  • 5. 打印系统当前日期和时间
  • 6. 统计文件中的行数
  • 7. 批量重命名文件(将.txt后缀改为.bak)
  • 8. 查找进程并杀死(根据进程名简单查找)
  • 9. 创建多个空文件
  • 10. 简单的菜单脚本

网络云计算】2024第50周-每日【2024/12/13】小测-理论-写10个Bash Shell脚本-解析

1. 计算1到100的和

bash">#!/bin/bash
# 初始化一个变量sum为0
sum=0
# 使用for循环从1到100累加
for (( i = 1; i <= 100; i++ )); dosum=$((sum + i))
done
# 输出结果
echo "1到100的和为: $sum"

2. 列出当前目录下所有文件和文件夹

bash">#!/bin/bash
# 使用ls命令列出当前目录内容, -l表示长格式
ls -l

3. 检查文件是否存在

bash">#!/bin/bash
file="test.txt"
# 使用 -e选项检查文件是否存在
if [ -e $file ]; thenecho "$file存在"
elseecho "$file不存在"
fi

4. 备份文件到指定目录(简单示例)

bash">#!/bin/bash
# 源文件
src_file="source.txt"
# 目标备份目录
backup_dir="/backup"
# 检查源文件是否存在
if [ -e $src_file ]; then# 如果备份目录不存在则创建if [! -d $backup_dir ]; thenmkdir -p $backup_dirfi# 使用cp命令备份文件cp $src_file $backup_direcho "文件 $src_file 备份到 $backup_dir 成功"
elseecho "源文件 $src_file 不存在,无法备份"
fi

5. 打印系统当前日期和时间

bash">#!/bin/bash
# 使用date命令获取并打印日期和时间
date

6. 统计文件中的行数

bash">#!/bin/bash
file="data.txt"
# 使用wc -l命令统计行数
line_count=$(wc -l < $file)
echo "$file的行数为: $line_count"

7. 批量重命名文件(将.txt后缀改为.bak)

bash">#!/bin/bash
# 遍历当前目录下所有.txt文件
for file in *.txt; doif [ -e $file ]; thennew_file="${file%.txt}.bak"mv $file $new_fileecho "重命名 $file$new_file"fi
done

8. 查找进程并杀死(根据进程名简单查找)

bash">#!/bin/bash
process_name="firefox"
# 使用pgrep查找进程ID
pid=$(pgrep $process_name)
if [ -n "$pid" ]; then# 使用kill命令杀死进程kill $pidecho "已杀死进程 $process_name,进程ID为 $pid"
elseecho "未找到名为 $process_name 的进程"
fi

9. 创建多个空文件

bash">#!/bin/bash
# 创建5个空文件
for (( i = 1; i <= 5; i++ )); dotouch "file_$i.txt"echo "创建了文件file_$i.txt"
done

10. 简单的菜单脚本

bash">#!/bin/bash
while true; doecho "1. 显示当前目录内容"echo "2. 显示日期和时间"echo "3. 退出"read -p "请选择操作: " choicecase $choice in1)ls -l;;2)date;;3)break;;*)echo "无效选择,请重新输入";;esac
done

这些脚本涵盖了Bash脚本的一些常见操作,如数学计算、文件操作、进程管理和用户交互等。


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

相关文章

【持续更新】Github实用命令

Intro 最近高强度使用github&#xff0c;遂小计于此作为备忘。 Basic github是一个代码管理软件&#xff0c;能够track文件变动并且管理版本&#xff0c;是当代coding必不可少的工具。当你安装好github在本地以后&#xff0c;你可以通过以下命令初始化当前文件夹&#xff08…

LabVIEW实现RFID通信

目录 1、RFID通信原理 2、硬件环境部署 3、程序架构 4、前面板设计 5、程序框图设计 6、测试验证 本专栏以LabVIEW为开发平台,讲解物联网通信组网原理与开发方法,覆盖RS232、TCP、MQTT、蓝牙、Wi-Fi、NB-IoT等协议。 结合实际案例,展示如何利用LabVIEW和常用模块实现物联网系…

构建一个rust生产应用读书笔记三(代码改进)

为了确保测试能够在随机可用的端口上运行&#xff0c;我们需要对 zero2prod::run 函数进行一些修改&#xff0c;使其接受一个端口号作为参数。如果端口号未指定&#xff0c;可以选择一个随机可用的端口。这样可以避免端口冲突问题&#xff0c;确保测试的稳定性和并行性。 当然…

Java 项目拼音工具类,用于将汉字转为拼音,并处理了常见的多音字问题

Java 项目拼音工具类&#xff0c;用于将汉字转为拼音&#xff0c;并处理了常见的多音字问题。 该工具类使用的依赖&#xff1a; <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</versi…

Python网络爬虫技术详解与实战案例

Python网络爬虫技术详解与实战案例 引言 网络爬虫(Web Crawler)是一种自动化程序,用于在互联网上收集数据。通过向网页发送HTTP请求,获取网页数据,然后提取和分析网页内容,网络爬虫能够实现数据收集、信息提取和数据分析等多种应用场景。Python作为一种功能强大且易于…

安防监控Liveweb视频汇聚融合平台助力执法记录仪高效使用

Liveweb平台可接入的设备除了常见的智能分析网关与摄像头以外 &#xff0c;还可通过GB28181协议接入执法记录仪&#xff0c;实现对执法过程的全程监控与录像&#xff0c;并对执法轨迹与路径进行调阅回看。那么&#xff0c;如何做到执法记录仪高效使用呢&#xff1f; 由于执法记…

python 配置 oracle instant client

1.问题描述 想用python连接oracle数据库&#xff0c;百度得知需要cx_Oracle这个第三方库 import cx_Oracle# 设置Oracle数据源名称 dsn cx_Oracle.makedsn(host, port, service_nameservice_name)# 创建数据库连接 connection cx_Oracle.connect(userusername, passwordpas…

【innodb阅读笔记】之 行格式(Dynamic)

一、背景 Innodb 1.0 版本开始引入了新的行格式 dynamic&#xff0c;新的行格式在存放 blob 中的数据采用了完全行溢出的方式&#xff0c;在数据页中只存放 20 字节的指针&#xff0c;实际数据都存放在 Off page 中&#xff0c;而 compact 会存放 768 个前缀字节。 二、dynami…