欢迎大家来到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

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