【发布时间】:2020-01-21 20:32:26
【问题描述】:
我目前有两个 bash 脚本,assign1.bash 和 read.bash,以及一个名为 data 的目录(其中包含包含课程信息的 txt 文件)。 assign 1 创建一个菜单并询问您是否要读取文件,如果选择它会执行 ./read.bash
read.bash 提示用户输入课程代码和课程编号 然后它检查文件是否存在于数据目录中,如果存在,它将逐行读取并打印出读取的值。如果不存在,则仅打印错误。
我的代码当前检查是否找到了该文件,然后它有一个空行,在按 Enter 5 次后它会打印但只有一个值。
我尝试使用以下方法获取输入并在数据目录中创建我要查找的文件名:
course_file=data"${dept_code^^}$course_num".crs
但这会导致空白行
#!/bin/bash
#need an if statement here to check if the course exists
read -p "Enter a department code and course number:" dept_code course_num
course_file=data/"${dept_code^^}$course_num".crs
if [[ -f "$course_file" ]]; then
read dept_code dept_name
read course_name
read course_sched course_start course_end
read course_hours
read course_size
else
echo "ERROR: course not found"
fi
echo "Course department: $dept_code $dept_name"
echo "Course number: $course_num"
echo "Course name: $course_name"
echo "Sheduled days: $course_sched"
echo "Course start: $course_start"
echo "Course end: $course_end"
echo "Credit hours: $course_hours"
echo "Enrolled Students: $course_size"
assign1.bash
目录中存在的课程文件是CS3423, 所以如果用户输入:cs 3423 它应该检查它是否存在于数据中(CS3423.crs 存在于数据目录中)然后逐行读取信息并获取声明的变量
然后它应该打印出以下内容:
Course number: 3423
Course name: Systems programming
Sheduled days: MWF
Course start: 7/20/19
Course end: 10/20/19
Credit hours: 3
Enrolled Students: 43
然后返回到assign1.bash中的原始提示,这是一个询问您是否要读取文件的菜单
【问题讨论】:
-
我忘了补充,我不允许使用 find 命令