- 论坛徽章:
- 0
|
借鉴网上的一篇关于自动挂接U盘的文章,现经自己修改以后贴出
MOUNT_DIR=/mnt/usb
MOUNT_DEV=/dev/sda1
mount | grep $MOUNT_DIR
if [ "$?" = "0" ]
then
# Kill all process locked the USB disk
fuser -m -v -k -i $MOUNT_DIR
umount $MOUNT_DIR
if [ "$?" = "0" ]
then
echo USB disk at $MOUNT_DIR has been unmounted
else
echo Can not unmount $MOUNT_DIR
fi
else
mount -t vfat /dev/sda1 $MOUNT_DIR -o codepage=936,iocharset=cp936 2>/dev/null
if [ "$?" = "0" ]
then
echo USB disk $MOUNT_DEV has been mounted at $MOUNT_DIR
else
#for MOUNT_DEV in $(fdisk -l | grep sd[b-z]1 | awk '{print $1}')
#for MOUNT_DEV in /dev/sdb1
for MOUNT_DEV in $(awk '{print $4}' /proc/partitions)
do
if [ "$?" = "0" ]
then
mount -t vfat /dev/$MOUNT_DEV $MOUNT_DIR -o codepage=936,iocharset=cp936 2>/dev/null
if [ "$?" = "0" ]
then
echo USB disk $MOUNT_DEV has been mounted at $MOUNT_DIR
exit 0
fi
fi
done
echo Can not mount $MOUNT_DEV to $MOUNT_DIR
fi
fi
exit 0
变动的地方是awk部分。。
用网上的文章fdisk -l | awk '{print $1}'
怎么也没反应,因为是我自己移植的BUSYBOX和READHAT9可能还是有区别吧,死活没反应,第一次改shell文件,一点都不动,只能顺着摸啦,搞了很久才把问题定位到 fdisk -l | awk '{print $1}' 这里。
找了一些资料来看弄明白了一点awk一个普通的用法,fdisk -l | 不支持,但是支持awk '' /.. 文件的方式,想起/proc/partitions 里有U盘的一些信息,利用这个信息可以挂接U盘,最后改成上面的版本,就可以适用于我现在的系统了,可能用/proc/partitions 支持的系统比较多一些。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/72877/showart_1712301.html |
|