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

          #!/bin/bash
          ##################################################################################
          #??
          #??? GMountISO 一個(gè)掛載在GNOME環(huán)境下掛載iso文件的小小小腳本
          #?????作者:xiaosilent
          #?? ? Email:xiaosilent@gmail.com
          #?????版本:
          0.3
          #?????依賴:zenity
          #?????用法:
          #????????
          1,圖形界面下,直接執(zhí)行腳本,也可復(fù)制到~/gnome2/nautilus-scripts/下,這樣將在nautilus的上下文菜單中出現(xiàn)script項(xiàng)。
          #????????
          2.1終端下,直接執(zhí)行腳本,和圖形界面下一樣
          #????????
          2.2終端下,./mountiso?iso_path?mount_path?直接完成掛載
          #
          ##################################################################################



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

          ISO_PATH
          =$1????????#iso文件路徑,從第一個(gè)參數(shù)里獲取
          MOUNTPOINT
          =$2????#掛載點(diǎn),第二個(gè)參數(shù)

          CHOSED_FUNCTION
          =""????#功能選擇,掛載/卸載
          ISMOUNTED
          =""????#掛載點(diǎn)是否已經(jīng)被占用



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

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

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


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

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

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

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

          ###執(zhí)行?卸載?的操作
          function?doUMount(){
          ????
          if?[?"$ISMOUNTED"?=?"TRUE"?]
          ????then
          ????????zenity?
          --warning?--title="是否選擇卸載"?--text="掛載目錄$MOUNTPOINT已經(jīng)被占用,必須要先進(jìn)行卸載。\n\n在確認(rèn)卸載以前,請確認(rèn)該卸載操作是安全的!\n\n卸載操作需要root權(quán)限,是否確定要進(jìn)行卸載?"
          ????????
          if?[?$??-eq?1?]
          ????????then
          ????????????exit?
          0
          ????????
          else
          ????????????gksu?umount?$MOUNTPOINT??##gksu在圖形界面下切換到超級用戶。
          ????????????checkMountPoint_Mounted
          ????????????
          if?[?"$ISMOUNTED"?=?"TRUE"?]
          ????????????then
          ????????????????zenity?
          --error?--title="卸載失敗"?--text="設(shè)備忙,或其他原因,卸載失敗!"
          ????????????????exit?
          1
          ????????????
          else
          ????????????????
          if?[?"$CHOSED_FUNCTION"?=?"掛載新卷"?]
          ????????????????then
          ????????????????????zenity?
          --info?--title="成功卸載"?--text="原來的卷已經(jīng)成功卸載,即將開始新卷的掛載操作!"
          ????????????????
          else
          ????????????????????zenity?
          --info?--title="成功卸載"?--text="原來的卷已經(jīng)成功卸載!"
          ????????????????????exit?
          0
          ????????????????fi
          ????????????fi
          ????????fi
          ????fi
          }

          ###執(zhí)行?掛載?的操作
          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已經(jīng)被成功掛載到$MOUNTPOINT!\n\n程序?qū)⒆詣?dòng)啟動(dòng)瀏覽器打開該目錄!"
          ????????nautilus?$MOUNTPOINT????#啟動(dòng)瀏覽器瀏覽新掛載的卷
          ????
          else
          ????????zenity?
          --error?--title="掛載失敗"?--text="在把文件$ISO_PATH掛載到$MOUNTPOINT時(shí)失敗!"
          ????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

          暫時(shí)還只實(shí)現(xiàn)了這么點(diǎn)功能,不過,目前暫時(shí)夠本人用了,所以,暫時(shí),這個(gè)腳本就是這樣了。

          剛才,搜索了一下mountiso,出來一個(gè)kde下的東東,所以,我這個(gè)mountiso就不能再存在了,現(xiàn)在換成 GMountISO。
          posted on 2006-12-03 10:54 xiaosilent 閱讀(393) 評論(0)  編輯  收藏 所屬分類: Linux相關(guān)
          主站蜘蛛池模板: 丰县| 聊城市| 安西县| 高州市| 芜湖县| 珲春市| 克拉玛依市| 吉隆县| 延寿县| 茂名市| 大足县| 竹山县| 新化县| 巴南区| 通许县| 瑞金市| 朝阳市| 蓬莱市| 阳山县| 阿城市| 明光市| 遵化市| 水城县| 富阳市| 崇明县| 德钦县| 濮阳市| 凉山| 乃东县| 淮北市| 安宁市| 南江县| 全椒县| 西乌| 彭州市| 丰县| 阿拉善右旗| 霸州市| 电白县| 得荣县| 天等县|