感谢作者:liweiming
代码: #!/bin/sh DIALOG=Xdialog
$DIALOG --backtitle "选项" \ --title "安装选项" \ --checklist "这是一个利用Xdialog制作的RPM包安装程序,如果有什么问题,请联系Lee FICQ:1368 \n请选择安装选项:" 0 0 0 \ "-i" "默认普通安装" on \ "-U" "升级安装" off \ " --force" "强制" On \ " --nodeps" "忽略依赖关系" off 2> /tmp/checklist.tmp.$$ retval=$?
ch1="-`grep -wo i /tmp/checklist.tmp.$$`" ch2="-`grep -wo U /tmp/checklist.tmp.$$`" ch3=`grep -wo force /tmp/checklist.tmp.$$` ch4=`grep -wo nodeps /tmp/checklist.tmp.$$` if [ "$ch1" == "-" ]; then ch1="" fi
if [ "$ch2" == "-" ]; then ch2="" fi
if [ "$ch3" != "" ]; then ch3="--$ch3" fi
if [ "$ch4" != "" ]; then ch4="--$ch4" fi
rm -f /tmp/checklist.tmp.$$ case $retval in 0) choice="$ch1 $ch2 $ch3 $ch4" FILE=`$DIALOG --stdout --title "请选择一个RPM包文件" --fselect /home 0 0`
case $? in 0) (rpm $choice -vh $FILE )|$DIALOG --title "正在安装,请稍等....." --left --progress "RPM包正在安装:\n\n" 0 0 $RPM_MAX_DOTS_NUMBER $RPM_LEADING_MSG_LENGTH $DIALOG --title "Finished!" --msgbox "安装完毕!" 0 0 ;; esac ;; 1) echo "Bye!";; 255) echo "Bye!";; esac |