|
发表于 2003-8-25 12:09:51
|
显示全部楼层
先来hds=($(echo /proc/ide/hd*)) :
首先运行echo /proc/ide/hd* --$()等于``,得到你的机器上有的驱动器路径。
在我的机器上运行结果如下:
$echo /proc/ide/hd*
/proc/ide/hda /proc/ide/hdb /proc/ide/hdd
然后,在$(echo /proc/ide/hd*)外面的括号是把echo的输出当做hds数组的元素,分隔符由IFS的第一个字符决定,一般为空格,所以这句运行后的结果为:hds=([0]="/proc/ide/hda" [1]="/proc/ide/hdb" [2]="/proc/ide/hdd")
接着到hds=(${hds##*/}):
也是先运行里面的东西:${hds##*/},这里表示删除变量$hds中每个元素的前导路径名,而后又把结果赋给hds,则刚才我们的hds数组就变成了:
hds=([0]="hda" [1]="hdb" [2]=hdd")
补充一句:这个脚本是bash来的,要用bash2.0以上运行。如果想深入学习的话可以找O'Reilly 出版社的《learning the bash shell》。
[qoute]
问题出在“hds=( $( echo /proc/ide/hd*) )"和"hds=( ${hds##*/} )"部分。
请各位高人指点有没有方法用另外一种方法来实现??
另外:/proc/ide/hd*/有什么方法可以将hd*单独提取出来???
[/qoute] |
|