linux用shell实现

实验一:Shell菜单的实现
实验任务说明
(1)学生要用“!”
(2)菜单内容有“学生信息管理脚本工具”、作者姓名、学号、操作项(操作项根据自己的理解写)。
(3)菜单显示时,要求有相关信息提示,提示用户输入,当用户选择对应菜单的操作项时,打印出对应的操作(用户选择菜单项,需要使用if或case语句来实现)。
(4)菜单项界面符号显示的多少,要求设置一个只读变量来进行控制(也就是说界面符号需要使用循环打印出来)。

引用 皆我百晓生 小程序回复内容作答:
实验代码如下:

#!/bin/bash

# 设置界面符号显示的数量
readonly LINE_NUM=30

# 打印界面符号
print_lines() {
    for ((i=0; i<LINE_NUM; i++)); do
        echo -n "="
    done
    echo ""
}

# 显示菜单
show_menu() {
    clear
    print_lines
    echo "学生信息管理脚本工具"
    echo "作者:姓名"
    echo "学号:学号"
    print_lines
    echo "请选择操作:"
    echo "1. 添加学生信息"
    echo "2. 查找学生信息"
    echo "3. 修改学生信息"
    echo "4. 删除学生信息"
    echo "0. 退出"
    print_lines
}

# 添加学生信息
add_student() {
    echo "请输入学生学号:"
    read student_id
    echo "请输入学生姓名:"
    read student_name
    echo "学生信息添加成功:"
    echo "学号:$student_id"
    echo "姓名:$student_name"
}

# 查找学生信息
search_student() {
    echo "请输入学生学号:"
    read student_id
    echo "查找学生信息:"
    echo "学号:$student_id"
    echo "姓名:张三"
}

# 修改学生信息
modify_student() {
    echo "请输入学生学号:"
    read student_id
    echo "请输入学生新姓名:"
    read student_name
    echo "学生信息修改成功:"
    echo "学号:$student_id"
    echo "新姓名:$student_name"
}

# 删除学生信息
delete_student() {
    echo "请输入学生学号:"
    read student_id
    echo "删除学生信息:"
    echo "学号:$student_id"
    echo "姓名:张三"
}

# 主函数
main() {
    while true; do
        show_menu
        read option
        case $option in
            1) add_student;;
            2) search_student;;
            3) modify_student;;
            4) delete_student;;
            0) echo "退出脚本"; break;;
            *) echo "无效的选项,请重新选择";;
        esac
        echo "按回车键继续..."
        read
    done
}

# 调用主函数
main

运行该脚本,即可实现一个简单的Shell菜单。

【以下回答由 GPT 生成】

首先,我们需要创建一个名为menu.sh的Shell脚本文件。在该文件中,我们可以使用以下代码来实现Linux菜单:

#!/bin/bash

# 定义菜单项列表
menu_items=(
    "学生信息管理脚本工具"
    "作者姓名"
    "学号"
    "操作项"
)

# 定义界面符号数量
readonly SYMBOL_COUNT=20

# 显示菜单选项
function display_menu() {
    clear
    echo "==============================="
    echo "         Linux菜单"
    echo "==============================="
    for ((i=0; i < ${#menu_items[@]}; i++)); do
        echo "$(($i+1)). ${menu_items[$i]}"
    done
    echo "==============================="
}

# 选择菜单项
function select_menu_item() {
    read -p "请选择菜单项: " choice
    case $choice in
        1)
            echo "您选择了 '学生信息管理脚本工具'"
            # 在这里编写学生信息管理脚本工具的代码
            ;;
        2)
            echo "您选择了 '作者姓名'"
            # 在这里打印作者姓名
            ;;
        3)
            echo "您选择了 '学号'"
            # 在这里打印学号
            ;;
        4)
            echo "您选择了 '操作项'"
            # 在这里编写操作项的代码
            ;;
        *)
            echo "无效的菜单选项"
            ;;
    esac
}

# 循环打印界面符号
function print_symbols() {
    for ((i=0; i < SYMBOL_COUNT; i++)); do
        echo -n "="
    done
    echo ""
}

# 主程序
function main() {
    while true; do
        display_menu
        print_symbols
        select_menu_item
        print_symbols
        read -p "按 Enter 键继续..."
    done
}

# 运行主程序
main

退出脚本的方法是按下Ctrl+C组合键。这将终止运行并退出菜单。

注意:在执行该脚本之前,需要给它执行权限。可以使用以下命令赋予执行权限:

chmod +x menu.sh

这样你就可以通过运行以下命令来执行脚本:

./menu.sh

脚本会循环显示菜单选项,并等待用户输入。用户选择菜单项后,将打印出对应的操作。之后,脚本会等待用户按Enter键继续,然后重新显示菜单。这个过程会一直循环下去,直到用户按下Ctrl+C组合键退出脚本。

以上代码是通过使用一个只读变量来控制界面符号数量,使用for循环打印界面符号,并使用case语句来选择和执行菜单项的操作。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^