您好朋友,感謝您關注xiaosilent,我在blogjava的博客已經停止更新,請訪問http://kuan.fm了解我的最新情況,謝謝!
          隨筆-82  評論-133  文章-0  trackbacks-0
          還是自己寫的小小腳本,用來掛載iso文件、卸載卷 的小腳本。 就算是0.6版了吧~~~~

          寫這個腳本,完全是出于學習,腳本中還有很多不足的地方有待改進。然而,我比較懶,先湊合著用吧,等到把最近的項目拿下以后再來好好學學scripting。

          驗證過,標準的mdf文件也可以掛載的,因為,按照腳本的寫法,只要是用 file 命令得到的結果里包含 iso 9660 的文件,都可以用本腳本掛載。

          點? 這里? 下載deb包,由于BlogJava只能上傳zip/rar格式,所以又被壓縮成了zip。以前也曾試著弄過deb包,結果初始化腳本沒有寫對,害得一位試用的兄弟卸載不了,在此,再次向那位兄弟表示歉意。這下,干脆就直接把腳本扔到/usr/bin里面了,可以隨便卸載了。

          #!/bin/bash
          ##################################################################################
          #??
          #????GMountISO?一個掛載iso文件的小腳本
          #?????作者:xiaosilent
          #????Email:xiaosilent@gmail.com
          #?????版本:
          0.6
          #?????依賴:zenity
          #?????用法:
          #????????
          1,圖形界面下,在iso文件上右擊選擇打開方式,在命令欄里找到GMountISO,啟動腳本
          #????????
          2.1終端下,直接執行腳本,和圖形界面下一樣
          #????????
          2.2終端下,gmountiso?iso_path?mount_path?直接完成掛載
          #
          ##################################################################################



          ###################?定義變量?##########################################

          ISO_PATH
          =$1????????#iso文件路徑,從第一個參數里獲取
          MOUNTPOINT
          =$2????#掛載點,第二個參數

          CHOSED_FUNCTION
          =""????#功能選擇,掛載/卸載
          ISMOUNTED
          =""????#掛載點是否已經被占用



          ###################?一些功能模塊?#######################################

          ###功能選擇?掛載/卸載
          function?choosefunction(){
          ????CHOSED_FUNCTION
          =`zenity?--title="選擇要執行的操作"?--list?--width=100?--radiolist?--column="是否選中"?--column="操作類型"?TRUE?"掛載新卷"?FALSE?"卸載舊卷"`
          ????if?
          [?"$?"?-eq?"1"?]
          ????then
          ????????echo?
          "沒有選擇,直接退出"
          ????????exit?
          0
          ????fi
          }

          ###獲取ISO文件的路徑
          function?getISOPath(){
          ????if?
          [?"$ISO_PATH"?=?""?]??#命令行參數為空
          ????then
          ????????ISO_PATH
          =`zenity?--file-selection?--title?"選擇要掛載的ISO文件"?--filename="~"`????#彈出文件選擇對話框
          ????????if?
          [?"$ISO_PATH"?=?""?]????#從文件對話框"取消",給出提示信息,程序退出。
          ????????then
          ????????????zenity?--error?--title
          ="錯誤信息"?--text="您沒有指定要掛載的ISO文件!"
          ????????????exit?
          1
          ????????fi
          ????fi
          ????if?
          [?`file?$ISO_PATH?|?grep?"ISO?9660"?|?wc?-c`?-eq?"0"?]
          ????then
          ????????zenity?--error?--title
          ="錯誤信息"?--text="讀取ISO文件出錯,請確認文件存在且是標準的ISO格式"
          ????????exit?
          1
          ????fi
          }


          ###獲取掛載點路徑
          function?getMountPoint(){
          ????if?
          [?"$MOUNTPOINT"?=?""?]????#沒有從命令行里制定掛載路徑
          ????then
          ????????MOUNTPOINT
          =`zenity?--file-selection?--directory?--title="請選擇ISO文件掛載目錄"???--filename="/media/iso"`
          ????????if?
          [?"$MOUNTPOINT"?=?""?]????#選擇了?"取消",給出提示信息,程序退出。
          ????????then
          ????????zenity?--error?--title
          ="錯誤信息"?--text="您沒有指定掛載目錄"
          ????????exit?
          1
          ????????fi
          ????fi
          }

          ###檢測掛載點是否存在
          function?checkMountPoint_Exist(){
          ????if?
          [?!?-e?$MOUNTPOINT?]???#監測掛載點是否存在
          ????then?#掛載點?不存在
          ????????zenity?--error?--title
          ="錯誤信息"?--text="掛載目錄$MOUNTPOINT不存在"
          ????????exit?
          1
          ????fi
          }

          ###檢測所指定的掛載點是否為目錄
          function?checkMountPoint_Directory(){
          ????if?
          [?!?-d?$MOUNTPOINT?]??#如果掛載點不是一個目錄
          ????then
          ????????enity?--error?--title
          ="錯誤信息"?--text="掛載目錄$MOUNTPOINT不是目錄"
          ????????exit?
          1
          ????fi
          }

          ###檢測指定的掛載點是否已經被使用
          function?checkMountPoint_Mounted(){
          ????ISMOUNTED
          =`grep?$MOUNTPOINT?/etc/mtab?|?wc?-c`
          ????if?
          [?"$ISMOUNTED"?-gt?"0"?]
          ????then
          ????????ISMOUNTED
          ="TRUE"
          ????else
          ????????ISMOUNTED
          ="FALSE"
          ????fi
          }

          ###執行?卸載?的操作
          function?doUMount(){
          ????if?
          [?"$ISMOUNTED"?=?"TRUE"?]
          ????then
          ????????zenity?--warning?--title
          ="確認卸載"?--text="即將卸載$MOUNTPOINT下的文件卷。\n\n在確認卸載以前,請確認該卸載操作是安全的!\n\n是否確定要進行卸載?"
          ????????if?
          [?$??-eq?1?]
          ????????then
          ????????????exit?
          0
          ????????else
          ????????????gksu?umount?$MOUNTPOINT??##gksu在圖形界面下切換到超級用戶。
          ????????????checkMountPoint_Mounted
          ????????????if?
          [?"$ISMOUNTED"?=?"TRUE"?]
          ????????????then
          ????????????????zenity?--error?--title
          ="卸載失敗"?--text="設備忙,或其他原因,卸載失?。?/span>"
          ????????????????exit?
          1
          ????????????else
          ????????????????if?
          [?"$CHOSED_FUNCTION"?=?"掛載新卷"?]
          ????????????????then
          ????????????????????zenity?--info?--title
          ="成功卸載"?--text="原來的卷已經成功卸載,即將開始新卷的掛載操作!"
          ????????????????else
          ????????????????????zenity?--info?--title
          ="成功卸載"?--text="掛載到$MOUNTPOINT的卷已經成功卸載!"
          ????????????????????exit?
          0
          ????????????????fi
          ????????????fi
          ????????fi
          ????fi
          }

          ###執行?掛載?的操作
          function?doMount(){
          ????gksu?
          "mount?$ISO_PATH?$MOUNTPOINT?-t?iso9660?-o?loop,utf8"????#gksu在圖形界面下切換到超級用戶。
          ????checkMountPoint_Mounted
          ????if?
          [?"$ISMOUNTED"?=?"TRUE"?]
          ????then
          ????????zenity?--info?--title
          ="掛載成功"?--text="文件$ISO_PATH已經被成功掛載到$MOUNTPOINT!\n\n程序將自動啟動瀏覽器打開該目錄!"
          ????????nautilus?$MOUNTPOINT????#啟動瀏覽器瀏覽新掛載的卷
          ????else
          ????????zenity?--error?--title
          ="掛載失敗"?--text="在把文件$ISO_PATH掛載到$MOUNTPOINT時失?。?/span>"
          ????fi
          ????exit?
          0
          }



          ###################?主程序??####################

          choosefunction

          if?
          [?"$CHOSED_FUNCTION"?=?"卸載舊卷"?]????#######卸載舊卷
          then
          ????getMountPoint
          ????checkMountPoint_Exist
          ????checkMountPoint_Directory
          ????checkMountPoint_Mounted
          ????
          ????if?
          [?"$ISMOUNTED"?=?"TRUE"?]????????########是否需要卸載
          ????then
          ????????doUMount
          ????else
          ????????zenity?--info?--title
          ="無須卸載"?--text="指定目錄并未曾掛載任何文件卷!"
          ????????exit?
          0
          ????fi
          else????##########掛載新卷
          ????getISOPath
          ????getMountPoint
          ????checkMountPoint_Exist
          ????checkMountPoint_Directory
          ????checkMountPoint_Mounted

          ????if?
          [?"$ISMOUNTED"?=?"TRUE"?]????########是否需要卸載
          ????then
          ????????doUMount
          ????fi

          ????doMount
          ????
          fi

          exit?
          0

          posted on 2006-12-21 14:18 xiaosilent 閱讀(944) 評論(0)  編輯  收藏 所屬分類: Linux相關
          主站蜘蛛池模板: 卫辉市| 仁化县| 烟台市| 泽库县| 青龙| 广宁县| 石柱| 长海县| 上饶市| 佛山市| 田林县| 曲阳县| 辽源市| 金山区| 邹城市| 晋宁县| 雷山县| 大姚县| 弥勒县| 信宜市| 阿尔山市| 华坪县| 自治县| 菏泽市| 榆社县| 六枝特区| 胶南市| 中西区| 龙里县| 安新县| 即墨市| 那坡县| 衡阳市| 湘潭县| 平阴县| 新密市| 武夷山市| 吐鲁番市| 五家渠市| 灵石县| 广宗县|