个人工具

“UbuntuHelp:EjectCDLauncher”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/EjectCDLauncher}}
 
{{From|https://help.ubuntu.com/community/EjectCDLauncher}}
{{Languages|php5}}
+
{{Languages|UbuntuHelp:EjectCDLauncher}}
 
You will get an icon on your panel and when you click on it, the cdrom gets unmounted and ejected.
 
You will get an icon on your panel and when you click on it, the cdrom gets unmounted and ejected.
  
第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"
第20行: 第16行:
  
  
#Ctrl-C trapping
 
 
trap ctrlc INT
 
trap ctrlc INT
 
ctrlc()
 
ctrlc()
第30行: 第25行:
  
  
#Show a dialog with zenity
 
#@param  string  The text to display
 
 
show_dialog()
 
show_dialog()
 
{
 
{
第40行: 第33行:
  
  
#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"
第64行: 第56行:
  
  
#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."
第74行: 第64行:
 
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="$?"
第85行: 第74行:
 
fi
 
fi
  
#Eject
 
 
eject "$device"
 
eject "$device"
 
last_err="$?"
 
last_err="$?"
第133行: 第121行:
 
[http://wiki.ubuntu.org.cn/EjectCDLauncher A Chinese translation] of this article.
 
[http://wiki.ubuntu.org.cn/EjectCDLauncher A Chinese translation] of this article.
 
----
 
----
CategoryDocumentation
+
[[category:CategoryDocumentation]]
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2007年5月14日 (一) 11:18的版本


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:



DEVICE="$1"
ZENITY_BIN="/usr/bin/zenity"


trap ctrlc INT
ctrlc()
{
echo -e "\nAborted by user."
rm -rf $TMP_DIR
exit 2
}


show_dialog()
{
if [ "$use_zenity" -gt "0" ] ; then
zenity --error --title "CD-Rom eject" --info-text "$1"
fi
}


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


if [ ! -e "$device" ] ; then
echo "Parameter DEVICE is not a file."
exit 1
fi


echo "Trying to eject CD-Rom..."

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 "$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.