Linux的shell编程对文件进行增删改查

Linux的shell编程对文件进行增删改查bin bash 任务文件路径 TASK FILE tasks txt 初始化任务文件 init task file if

欢迎大家来到IT世界,在知识的湖畔探索吧!

#!/bin/bash

# 任务文件路径

TASK_FILE=”tasks.txt”

# 初始化任务文件

init_task_file() {

if [ ! -f “$TASK_FILE” ]; then

touch “$TASK_FILE”

fi

}

# 添加任务

add_task() {

local task=”$1″

if [ -z “$task” ]; then

echo “错误:任务内容不能为空。”

return 1

fi

echo “[ ] $task” >> “$TASK_FILE”

echo “任务已添加:$task”

}

# 查看任务列表

list_tasks() {

if [ ! -s “$TASK_FILE” ]; then

echo “没有任务。”

return

fi

echo “任务列表:”

cat -n “$TASK_FILE”

}

# 标记任务为完成

mark_task_done() {

local task_num=”$1″

if [ -z “$task_num” ]; then

echo “错误:任务编号不能为空。”

return 1

fi

if ! [[ “$task_num” =~ ^[0-9]+$ ]]; then

echo “错误:任务编号必须是数字。”

return 1

fi

local total_tasks=$(wc -l < “$TASK_FILE”)

if [ “$task_num” -lt 1 ] || [ “$task_num” -gt “$total_tasks” ]; then

echo “错误:任务编号超出范围。”

return 1

fi

sed -i “${task_num}s/^\[ \]/[X]/” “$TASK_FILE”

echo “任务 $task_num 已标记为完成。”

}

# 删除任务

delete_task() {

local task_num=”$1″

if [ -z “$task_num” ]; then

echo “错误:任务编号不能为空。”

return 1

fi

if ! [[ “$task_num” =~ ^[0-9]+$ ]]; then

echo “错误:任务编号必须是数字。”

return 1

fi

local total_tasks=$(wc -l < “$TASK_FILE”)

if [ “$task_num” -lt 1 ] || [ “$task_num” -gt “$total_tasks” ]; then

echo “错误:任务编号超出范围。”

return 1

fi

sed -i “${task_num}d” “$TASK_FILE”

echo “任务 $task_num 已删除。”

}

# 主菜单

main_menu() {

while true; do

echo “—————————–“

echo “1. 添加任务”

echo “2. 查看任务列表”

echo “3. 标记任务为完成”

echo “4. 删除任务”

echo “5. 退出”

echo “—————————–“

read -p “请选择操作 (1-5): ” choice

case $choice in

1)

read -p “请输入任务内容: ” task

add_task “$task”

;;

2)

list_tasks

;;

3)

read -p “请输入要标记为完成的任务编号: ” task_num

mark_task_done “$task_num”

;;

4)

read -p “请输入要删除的任务编号: ” task_num

delete_task “$task_num”

;;

5)

echo “退出任务管理系统。”

break

;;

*)

echo “无效的选择,请重新输入。”

;;

esac

done

}

# 初始化任务文件

init_task_file

# 启动主菜单

main_menu

Linux的shell编程对文件进行增删改查

欢迎大家来到IT世界,在知识的湖畔探索吧!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/114913.html

(0)
上一篇 6小时前
下一篇 6小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信