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

文章目录

  • [1. 计算1到100的和](#1. 计算1到100的和)
  • [2. 列出当前目录下所有文件和文件夹](#2. 列出当前目录下所有文件和文件夹)
  • [3. 检查文件是否存在](#3. 检查文件是否存在)
  • [4. 备份文件到指定目录(简单示例)](#4. 备份文件到指定目录(简单示例))
  • [5. 打印系统当前日期和时间](#5. 打印系统当前日期和时间)
  • [6. 统计文件中的行数](#6. 统计文件中的行数)
  • [7. 批量重命名文件(将.txt后缀改为.bak)](#7. 批量重命名文件(将.txt后缀改为.bak))
  • [8. 查找进程并杀死(根据进程名简单查找)](#8. 查找进程并杀死(根据进程名简单查找))
  • [9. 创建多个空文件](#9. 创建多个空文件)
  • [10. 简单的菜单脚本](#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++ )); do
    sum=$((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 ]; then
    echo "$file存在"
else
    echo "$file不存在"
fi

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

bash 复制代码
#!/bin/bash
# 源文件
src_file="source.txt"
# 目标备份目录
backup_dir="/backup"
# 检查源文件是否存在
if [ -e $src_file ]; then
    # 如果备份目录不存在则创建
    if [! -d $backup_dir ]; then
        mkdir -p $backup_dir
    fi
    # 使用cp命令备份文件
    cp $src_file $backup_dir
    echo "文件 $src_file 备份到 $backup_dir 成功"
else
    echo "源文件 $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; do
    if [ -e $file ]; then
        new_file="${file%.txt}.bak"
        mv $file $new_file
        echo "重命名 $file 为 $new_file"
    fi
done

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

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

9. 创建多个空文件

bash 复制代码
#!/bin/bash
# 创建5个空文件
for (( i = 1; i <= 5; i++ )); do
    touch "file_$i.txt"
    echo "创建了文件file_$i.txt"
done

10. 简单的菜单脚本

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

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

相关推荐
wdfk_prog6 分钟前
Docker 29 与 containerd image store:镜像为什么会保存两种形态
运维·docker·容器
蓝速科技8 分钟前
固定涉外场景台式翻译机选型与落地指南
网络·人工智能·自然语言处理·语音识别·技术分享
Java小学生丶14 分钟前
[开源自荐] ZTShell,一个使用 Tauri 2 + Rust 全程由 AI 开发的跨平台桌面 SSH 工具
linux·网络·centos7·云服务器·开发技巧·资源分享·个人私货
广州灵眸科技有限公司17 分钟前
灵眸科技EAI3572-Core-L核心板即将发布!八核+4TOPS NPU,面向工业与边缘AI
linux·运维·服务器·数据库·yolo
流浪00117 分钟前
Linux系统篇28——通信(五):信号量专篇:从电影院订票到内核一张大表,把信号量一次讲透
linux·运维·服务器
张洛闻Eren28 分钟前
云原生k8s【第七课】:集群监控与可观测性
linux·运维·docker·云原生·容器·kubernetes·k8s
星 海2 小时前
【网络】VirtualBox网络模式
网络·虚拟机·virtualbox·vm
测试猿实操笔记8 小时前
DNS 通俗讲解:域名 ↔ IP 翻译
网络·网络协议·tcp/ip
青禾8378 小时前
Linux 操作系统入门指南:从目录结构到常用命令
linux·运维·服务器
zhengqweasd9 小时前
流量没跑满、带宽空闲,业务依然卡顿
运维·服务器·网络