当前位置: 首页 > news >正文

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

文章目录

  • 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的和

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

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

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

3. 检查文件是否存在

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

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

#!/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. 打印系统当前日期和时间

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

6. 统计文件中的行数

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

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

#!/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. 查找进程并杀死(根据进程名简单查找)

#!/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. 创建多个空文件

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

10. 简单的菜单脚本

#!/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.lryc.cn/news/505249.html

相关文章:

  • MATLAB转换C语言--问题(一)FFT 和 IFFT 的缩放因子
  • 轻松上手:使用 Vercel 部署 HTML 页面教程
  • 如何运用 HTM?
  • 12.16【net】【study】
  • 2023和2024历年美赛数学建模赛题,算法模型分析!
  • Node.js内置模块
  • 测评|携程集团25年社招在线测评北森题库、真题分析、考试攻略
  • 快速启动Go-Admin(Gin + Vue3 + Element UI)脚手架管理系统
  • 数据分流:优化数据处理流程的关键策略
  • RabbitMQ如何构建集群?
  • RNN LSTM Seq2Seq Attention
  • 硬件设计-ADC和低本底噪声为何至关重要
  • 个性化域名配置
  • uniapp中打包应用后,组件在微信小程序和其他平台实现不同的样式
  • MRI脑肿瘤检测数据集,使用500张原始图片标注,支持yolo,coco,voc格式
  • JumpServer开源堡垒机搭建及使用
  • Java 编程旅程(二)
  • 一、springcloud 入门——笔记
  • 思考:VSCode 的宏观工作原理 快速入门 VSCodium (****)
  • C++ day8——模版
  • 【CSS in Depth 2 精译_080】 13.1:CSS 渐变效果(中)——不同色彩空间的颜色插值算法在 CSS 渐变中的应用
  • 红日靶场1(搭建打靶)
  • LivePortrait 部署笔记
  • Greenhills Lib操作-查看Lib信息与将lib中的data段link到指定区域
  • 【十进制整数转换为其他进制数——短除形式的贪心算法】
  • 【JavaEE】网络(2)
  • AI for Science 的完美实践——科研文献的智慧化提取获得“综述性文摘”的软件开发
  • 前端使用xlsx.js实现 Excel 文件的导入与导出功能
  • React简单了解
  • backbone 和Run-Length Encoding (RLE)含义