当前位置: 技术问答>linux和unix
如何读取文件中一个变量的值,并把这个值前面的空格去掉?求助!!!
来源: 互联网 发布时间:2015-10-07
本文导语: 我想把FC3中/proc/sys/dev/cdrom/info中的drive name:的值hdc用脚本语言读出来存储在一个变量name中,文件info的内容如下: CD-ROM information, Id: cdrom.c 3.20 2003/12/17 drive name: hdc drive speed: ...
我想把FC3中/proc/sys/dev/cdrom/info中的drive name:的值hdc用脚本语言读出来存储在一个变量name中,文件info的内容如下:
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: hdc
drive speed: 32
drive # of slots: 1
Can close tray: 1
Can open tray: 1
Can lock tray: 1
Can change speed: 1
Can select disk: 0
Can read multisession: 1
Can read MCN: 1
Reports media changed: 1
Can play audio: 1
Can write CD-R: 1
Can write CD-RW: 1
Can read DVD: 1
Can write DVD-R: 1
Can write DVD-RAM: 1
Can read MRW: 1
Can write MRW: 1
Can write RAM: 1
我写的脚本如下:
#!/bin/bash
n=0
/bin/cat /proc/sys/dev/cdrom/info | {
while read line; do
n=$[$n+1]
if [ "$n" -eq 3 ]; then
name=${line/drive name:}
echo "$name"
fi
done
}
这样输出的内容为“ hdc”而不是“hdc”怎么把hdc前面的空格去掉,请大家帮帮我。
还有我在编写脚本的时候,是用变量n=3定位drive name:的,还有没有更好的办法来定位drive name:,因为我担心如果drive name:的位置发生了变化,我的脚本就不适用了!
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: hdc
drive speed: 32
drive # of slots: 1
Can close tray: 1
Can open tray: 1
Can lock tray: 1
Can change speed: 1
Can select disk: 0
Can read multisession: 1
Can read MCN: 1
Reports media changed: 1
Can play audio: 1
Can write CD-R: 1
Can write CD-RW: 1
Can read DVD: 1
Can write DVD-R: 1
Can write DVD-RAM: 1
Can read MRW: 1
Can write MRW: 1
Can write RAM: 1
我写的脚本如下:
#!/bin/bash
n=0
/bin/cat /proc/sys/dev/cdrom/info | {
while read line; do
n=$[$n+1]
if [ "$n" -eq 3 ]; then
name=${line/drive name:}
echo "$name"
fi
done
}
这样输出的内容为“ hdc”而不是“hdc”怎么把hdc前面的空格去掉,请大家帮帮我。
还有我在编写脚本的时候,是用变量n=3定位drive name:的,还有没有更好的办法来定位drive name:,因为我担心如果drive name:的位置发生了变化,我的脚本就不适用了!
|
不用那么复杂的,一个命令就可以了,用下面的脚本。
#!/bin/bash
name=`awk -F':' '$1~"device name"{print $2}' /bin/cat /proc/sys/dev/cdrom/info`
echo $name
#!/bin/bash
name=`awk -F':' '$1~"device name"{print $2}' /bin/cat /proc/sys/dev/cdrom/info`
echo $name