如果我的问题的解决方案是非常直接和明显的,我提前道歉,因为我对shell脚本编程非常陌生。对于我正在开发的程序,我需要更新之前创建的另一个文件的内容。例如,假设这是要更新的文件之一student_1.item:
student_1 Sally Johnson
3 9
Mr. Ortiz我将创建另一个bash文件,该文件询问要更新的文件的名称,然后每次提示用户输入以下内容:
Student Name:
Student Number:
Grade:
Age:
Teacher:用户可以将上面的任何内容留空,并且任何未填充的内容都不会在原始student_1.item文件中更改。但是,无论填写的是什么,都应该更改并更新为用户输入的内容。
我认为我需要理解环境变量的概念,但我有点卡住了。我是否需要首先从student_1.item中将行读入变量,然后再将任何更改过的变量导出回student_1.item?
如果这是一个愚蠢的问题,我再次道歉。如有任何帮助,我们不胜感激!
发布于 2020-09-22 09:12:50
听起来有点复杂,但这里有一个未经测试的解决方案:它逐行读取文件,并将这些行赋给3个变量。在此之后,这些变量被解析以获得正确的学生值。
# line number
n=0
# read file line by line
while read line; do
# assign line to a variable
case $n:
0) firstline=$line
;;
1) secondline=$line
;;
2) thirdline=$line
;;
esac
# increment line number
n=$((n+1))
done < student_1.item
# parse each line variable
student_number=$(echo $firstline | cut -d' ' -f1)
student_name=$(echo $firstline | cut -d' ' -f2,3)
student_grade=$(echo $secondline | cut -d' ' -f1)
student_age=$(echo $secondline | cut -d' ' -f2)
student_teacher=$thirdlinehttps://stackoverflow.com/questions/64001531
复制相似问题