首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在shell脚本中更新另一个文件中的选择变量?

如何在shell脚本中更新另一个文件中的选择变量?
EN

Stack Overflow用户
提问于 2020-09-22 08:31:21
回答 1查看 21关注 0票数 0

如果我的问题的解决方案是非常直接和明显的,我提前道歉,因为我对shell脚本编程非常陌生。对于我正在开发的程序,我需要更新之前创建的另一个文件的内容。例如,假设这是要更新的文件之一student_1.item:

代码语言:javascript
运行
复制
student_1 Sally Johnson 
3 9
Mr. Ortiz

我将创建另一个bash文件,该文件询问要更新的文件的名称,然后每次提示用户输入以下内容:

代码语言:javascript
运行
复制
Student Name:
Student Number:
Grade:
Age:
Teacher:

用户可以将上面的任何内容留空,并且任何未填充的内容都不会在原始student_1.item文件中更改。但是,无论填写的是什么,都应该更改并更新为用户输入的内容。

我认为我需要理解环境变量的概念,但我有点卡住了。我是否需要首先从student_1.item中将行读入变量,然后再将任何更改过的变量导出回student_1.item?

如果这是一个愚蠢的问题,我再次道歉。如有任何帮助,我们不胜感激!

EN

Stack Overflow用户

发布于 2020-09-22 09:12:50

听起来有点复杂,但这里有一个未经测试的解决方案:它逐行读取文件,并将这些行赋给3个变量。在此之后,这些变量被解析以获得正确的学生值。

代码语言:javascript
运行
复制
# 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=$thirdline
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64001531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档