“UbuntuHelp:EjectCDLauncher”的版本间的差异
来自Ubuntu中文
小 |
小 |
||
第9行: | 第9行: | ||
<pre><nowiki> | <pre><nowiki> | ||
#! /bin/sh | #! /bin/sh | ||
+ | |||
# | # | ||
# Try to unmount a CD-Rom device, then eject it. | # Try to unmount a CD-Rom device, then eject it. | ||
# | # | ||
+ | |||
DEVICE="$1" | DEVICE="$1" | ||
ZENITY_BIN="/usr/bin/zenity" | ZENITY_BIN="/usr/bin/zenity" | ||
+ | |||
+ | |||
#Ctrl-C trapping | #Ctrl-C trapping | ||
trap ctrlc INT | trap ctrlc INT | ||
第22行: | 第26行: | ||
exit 2 | exit 2 | ||
} | } | ||
+ | |||
+ | |||
#Show a dialog with zenity | #Show a dialog with zenity | ||
#@param string The text to display | #@param string The text to display | ||
第30行: | 第36行: | ||
fi | fi | ||
} | } | ||
+ | |||
+ | |||
#Get parameters | #Get parameters | ||
− | if [ "$1" | + | if [ "$1" == "-h" ] || [ "$1" == "--help" ] ; then |
echo "Usage: eject_cdrom [-q] DEVICE" | echo "Usage: eject_cdrom [-q] DEVICE" | ||
echo -e "Try to unmount DEVICE then eject it if successful.\n" | echo -e "Try to unmount DEVICE then eject it if successful.\n" | ||
第39行: | 第47行: | ||
exit 0 | exit 0 | ||
fi | fi | ||
− | if [ "$1" | + | |
+ | if [ "$1" == "-z" ] || [ "$1" == "--zenity" ] ; then | ||
if [ ! -x "$ZENITY_BIN" ] ; then | if [ ! -x "$ZENITY_BIN" ] ; then | ||
echo "You must install zenity before that." | echo "You must install zenity before that." | ||
第45行: | 第54行: | ||
fi | fi | ||
use_zenity="1" | use_zenity="1" | ||
+ | |||
device="$2" | device="$2" | ||
else | else | ||
第50行: | 第60行: | ||
device="$1" | device="$1" | ||
fi | fi | ||
+ | |||
+ | |||
#Device check | #Device check | ||
#TODO: Check if DEVICE is truly a device. | #TODO: Check if DEVICE is truly a device. | ||
第56行: | 第68行: | ||
exit 1 | exit 1 | ||
fi | fi | ||
+ | |||
+ | |||
echo "Trying to eject CD-Rom..." | echo "Trying to eject CD-Rom..." | ||
+ | |||
#Unmount | #Unmount | ||
umount "$device" 2>/dev/null | umount "$device" 2>/dev/null | ||
last_err="$?" | last_err="$?" | ||
+ | |||
if [ "$last_err" -eq "1" ] ; then | if [ "$last_err" -eq "1" ] ; then | ||
msg="Cannot unmount device $device (busy)." | msg="Cannot unmount device $device (busy)." | ||
第66行: | 第82行: | ||
exit 1 | exit 1 | ||
fi | fi | ||
+ | |||
#Eject | #Eject | ||
eject "$device" | eject "$device" | ||
last_err="$?" | last_err="$?" | ||
+ | |||
if [ "$last_err" -ne "0" ] ; then | if [ "$last_err" -ne "0" ] ; then | ||
msg="Cannot eject device." | msg="Cannot eject device." | ||
第75行: | 第93行: | ||
exit 1 | exit 1 | ||
fi | fi | ||
+ | |||
exit 0 | exit 0 | ||
</nowiki></pre> | </nowiki></pre> |
2007年12月6日 (四) 10:13的版本
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.