“UbuntuHelp:EjectCDLauncher”的版本间的差异
来自Ubuntu中文
小 |
小 |
||
第10行: | 第10行: | ||
Paste the following lines: | Paste the following lines: | ||
<pre><nowiki> | <pre><nowiki> | ||
+ | #! /bin/sh | ||
+ | # | ||
+ | # Try to unmount a CD-Rom device, then eject it. | ||
+ | # | ||
DEVICE="$1" | DEVICE="$1" | ||
第16行: | 第20行: | ||
+ | #Ctrl-C trapping | ||
trap ctrlc INT | trap ctrlc INT | ||
ctrlc() | ctrlc() | ||
第25行: | 第30行: | ||
+ | #Show a dialog with zenity | ||
+ | #@param string The text to display | ||
show_dialog() | show_dialog() | ||
{ | { | ||
第33行: | 第40行: | ||
+ | #Get parameters | ||
if [ "$1" === "-h" ] || [ "$1" === "--help" ] ; then | if [ "$1" === "-h" ] || [ "$1" === "--help" ] ; then | ||
echo "Usage: eject_cdrom [-q] DEVICE" | echo "Usage: eject_cdrom [-q] DEVICE" | ||
第56行: | 第64行: | ||
+ | #Device check | ||
+ | #TODO: Check if DEVICE is truly a device. | ||
if [ ! -e "$device" ] ; then | if [ ! -e "$device" ] ; then | ||
echo "Parameter DEVICE is not a file." | echo "Parameter DEVICE is not a file." | ||
第64行: | 第74行: | ||
echo "Trying to eject CD-Rom..." | echo "Trying to eject CD-Rom..." | ||
+ | #Unmount | ||
umount "$device" 2>/dev/null | umount "$device" 2>/dev/null | ||
last_err="$?" | last_err="$?" | ||
第74行: | 第85行: | ||
fi | fi | ||
+ | #Eject | ||
eject "$device" | eject "$device" | ||
last_err="$?" | last_err="$?" |
2007年5月24日 (四) 09:35的版本
You will get an icon on your panel and when you click on it, the cdrom gets unmounted and ejected.
Create a new file:
gksudo gedit /usr/local/bin/eject_cd
Paste the following lines:
#! /bin/sh # # Try to unmount a CD-Rom device, then eject it. # DEVICE="$1" ZENITY_BIN="/usr/bin/zenity" #Ctrl-C trapping trap ctrlc INT ctrlc() { echo -e "\nAborted by user." rm -rf $TMP_DIR exit 2 } #Show a dialog with zenity #@param string The text to display show_dialog() { if [ "$use_zenity" -gt "0" ] ; then zenity --error --title "CD-Rom eject" --info-text "$1" fi } #Get parameters if [ "$1" === "-h" ] || [ "$1" === "--help" ] ; then echo "Usage: eject_cdrom [-q] DEVICE" echo -e "Try to unmount DEVICE then eject it if successful.\n" echo "Possible parameters:" echo -e "-h, --help\tdisplay this help and exit." echo -e "-z, --zenity\tuse zenity to displays errors in dialog windows." exit 0 fi if [ "$1" === "-z" ] || [ "$1" === "--zenity" ] ; then if [ ! -x "$ZENITY_BIN" ] ; then echo "You must install zenity before that." exit 1 fi use_zenity="1" device="$2" else use_zenity="0" device="$1" fi #Device check #TODO: Check if DEVICE is truly a device. if [ ! -e "$device" ] ; then echo "Parameter DEVICE is not a file." exit 1 fi echo "Trying to eject CD-Rom..." #Unmount umount "$device" 2>/dev/null last_err="$?" if [ "$last_err" -eq "1" ] ; then msg="Cannot unmount device $device (busy)." echo "$msg" show_dialog "$msg" exit 1 fi #Eject eject "$device" last_err="$?" if [ "$last_err" -ne "0" ] ; then msg="Cannot eject device." echo "$msg" show_dialog "$msg" exit 1 fi exit 0
Make the script executable:
sudo chmod +x /usr/local/bin/eject_cd
Create a new launcher on a panel (or wherever you want):
Right-click on the panel 'Add to Panel' 'Custom Application Launcher'
Type this (replace /dev/cdrom with your CD-Rom device):
Name: Eject CD-Rom Comment: Unmount and eject the CD-Rom /dev/cdrom Command: /usr/local/bin/eject_cd -z /dev/cdrom Icon: /usr/share/icons/gnome/24x24/devices/gnome-dev-removable.png
Click 'Close'
Note: This script uses zenity to display errors. However if you don't want this feature, remove the '-z' parameter.
To install zenity:
sudo apt-get install zenity
Credits: Sam
A Chinese translation of this article.