Bash 终端列出包含文本文件的文件夹中的命令

Bash 终端列出包含文本文件的文件夹中的命令

你好,我想在使用文本文件时创建一个交互式 bash 文件,如何让它工作,就像如果用户按下 1,它会给他一个来自这个文本文件的完整名称列表,例如,我在

  1. 列出全部
  2. 显示信息
  3. 统计学生人数
  4. 删除学生
  5. 备份
  6. 退出全部列出:如果助手选择此选项,则会显示所有学生的信息(每个文件的第一行),每行一个学生,按学生姓氏的字母顺序排列。

显示信息:如果助手选择此选项,则会创建并显示一个包含所有学生 ID、专业和 GPA 的文件(每行一个学生)。

删除学生:如果助手选择此选项,他/她将提示输入学生的 ID 以从数据库中删除其文件。添加条件以检查学生 ID 的有效格式(9 位数字)。如果 ID 不存在,则返回警告消息。

计数:如果助手选择此选项,则每个专业的学生人数将以反向数字显示。

备份:如果助手选择此选项,则会为学生数据库创建一个备份文件夹,并在文件夹 2 的名称中添加操作时的日期(CurrentStudents.Date)。日期必须采用以下格式:day_FullMonthName_Last2DigitsYear。

退出:如果助手选择此选项,程序将终止。

此外,菜单在每个选项之后都会再次显示,但“退出”选项除外,该选项会终止程序。菜单上的任何无效选择都会显示一条消息,通知用户该选择无效,并再次提示用户选择。有两种方法可以正常结束程序:要么让用户选择“退出”选项,要么输入无效选项超过 3 次。非常感谢您的帮助

答案1

您可以将其用作模板:

#!/bin/bash

menu () {
echo "Please choose a command below"
echo "  1)Print Present workind directory"
echo "  2)echo hi"
echo "  3)Clear screen"
echo "  4)Exit menu" 
}

menu

while read n

do

case $n in
  1) echo "$PWD";;
  2) echo "hi";;
  3) clear;;
  4) exit;;
  *) echo "invalid option. Please try again";;
esac

menu

done

相关内容