免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1049 | 回复: 0
打印 上一主题 下一主题

自动挂接U盘的shell [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-10 13:06 |只看该作者 |倒序浏览
借鉴网上的一篇关于自动挂接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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP