shell脚本怎样读取文件的值,并赋值给变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本怎样读取文件的值,并赋值给变量相关的知识,希望对你有一定的参考价值。
我有一个文件,是这样的:
#Software ID,Software name,Version,OS type,Vendor
UDP00001,TEST_SET Software for Linux,V1,Linux,"TEST, Inc."
UDP00002,TEST_SET Software for Windows,1.0,Windows,"TEST, Inc."
我需要将最后一行的第一个值(UDP00002)赋值给a,将倒数第二行最后一个值(UDP00001)赋值给b,在shell脚本中应该怎么写?这个文件前面可能还会有很多内容,我只管最后两行
在sell脚本中,读取键盘输入的内容并将其赋值给shell变量的命令为:
read -p "input a val:" val echo $val
read - 从标准输入读取数值。这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。
它的语法形式一般是:
read [-options] [variable...]
扩展资料:
Shell是一种脚本语言,常见的脚本解释器有:
bash:是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。
sh: 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。
常见的编程语言分为两类:一个是编译型语言,如:c/c++/java等,它们远行前全部一起要经过编译器的编译。
参考资料来源:百度百科-Shell脚本
参考技术A #!/bin/bash#使用方法:./script.sh filename
a=$(sed -n '$p' $1 | awk -F"," 'print $1')
b=$(sed -n '1!P;N;$q;D' $1 | awk -F"," 'print $1')
echo $a
echo $b追问
比如那个文件叫test.csv,怎样把文件写在shell里面?
我试了a=$(sed -n '$p' $1 | awk -F"," 'print $1' test.csv)
这样貌似不好使
比如你把这个保存到script.sh文件里。
你直接执行./script.sh test.csv
就可以了。不需要把文件写到脚本里,我给你做了个传参,你直接在脚本后边跟文件名就行了。
sed -n '$p' $1
这个$1是传参是吧,我懂了
shell变量用grep怎么不能赋值
应该是可以赋值的,需要看你的报错是什么假设你的原始变量信息太大,你可以通过grep的方式过滤你不需要的信息,把你要的内容赋值给新的变量 参考技术A ./表示执行当前目录下某个可执行文件,这个文件不一定是bash脚本,但是sh方式就只能执行shell脚本,如果一个二进制可执行程序你用sh ./binExample这种方式执行,会报错的。
以上是关于shell脚本怎样读取文件的值,并赋值给变量的主要内容,如果未能解决你的问题,请参考以下文章