LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 659|回复: 4

一个自动挂载dos分区的脚本 有一部分看不懂?

[复制链接]
发表于 2005-1-4 17:22:45 | 显示全部楼层 |阅读模式
#!/bin/bash
#bakup /etc/fstab
cp /etc/fstab /etc/fstab.orig

# config
fdisk -l /dev/hda |grep FAT  >>temp
fdisk -l /dev/hdb |grep FAT  >>temp
fdisk -l /dev/hdc |grep FAT  >>temp
fdisk -l /dev/hdd |grep FAT  >>temp
#sort
awk '$0~/\*/ {print $1"  "$NF}' temp >>pt   ##这里$0~/\*/ 什么意思?
awk '$0!~/\*/ {print $1"  "$NF}' temp >>pt
i=142
while read disks fstype
do
     if [ $fstype = "FAT32" ]; then
       disks_FS=vfat
     else
       disks_FS=msdos
     fi
i=`expr $i + 1`
if [ "${i:2}" != "8" -a "${i:2}" != "9" ]; then   ##if 和后面的看不懂,能不能解释一下
echo -e  "$disks"\\t"/mnt/"\\$i""\\t"$disks_FS"\\t"iocharset=gb2312,codepage=936,umask=0 0 0" >>/etc/fstab
   fi
done <pt
rm -f temp pt



希望得到kornlee等高手的指点!!
发表于 2005-1-4 17:38:03 | 显示全部楼层
$0~/\*/ :
=>$0是awk从文件temp读入的一个记录,也就是temp的每一行,$0~/\*/是判断该行是否含有星号

${i:2}:
=>bash的变量替换,${i:2}表示从变量$i第二个字符起的字符串。例如$i="abcd",则${i:2}="cd"
 楼主| 发表于 2005-1-4 21:43:54 | 显示全部楼层
十分感谢
 楼主| 发表于 2005-1-4 21:46:51 | 显示全部楼层
那么echo 后面的那句能不能也解释一下?
发表于 2005-1-4 21:58:23 | 显示全部楼层
Post by eltax
那么echo 后面的那句能不能也解释一下?


搜索本版精华区“shell十三问”关于echo部分
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表