【网络云计算】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脚本的一些常见操作,如数学计算、文件操作、进程管理和用户交互等。

相关推荐
少妇的美梦6 小时前
logstash教程
运维
容器魔方6 小时前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
chen9456 小时前
k8s集群部署vector日志采集器
运维
chen9456 小时前
aws ec2部署harbor,使用s3存储
运维
白帽黑客沐瑶11 小时前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
三坛海会大神55511 小时前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆11 小时前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
qq_2642208911 小时前
LVS负载均衡群集和LVS+Keepalived群集
运维·负载均衡·lvs
树码小子11 小时前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
乌萨奇也要立志学C++12 小时前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器