您的位置:首页 > 其它

qcd_install文件解析

2015-08-28 15:48 330 查看
[align=center][/align]

#!/bin/sh

#qcd install

#written by xiewei 2004

setup_content=/etc/qcd

history_dir=$setup_content/history_dir

bin_content=/usr/local/sbin

prof_content=/etc/profile.d

#上面是定义的一些程序中要使用到的变量。

setup() #安装程序函数

{

#check 检测文件是否存在

if [ -r $history_dir ] #判断文件是否可读。

then

echo -n "You have installed qcd , overwrite it(y\Y or q\Q or n\N)? "

#上一行echo后面的-n表示打印后面的字符串后不换行。

while read choice #读取用户按下的键值。

do

if [ "$choice" = "y" -o "$choice" = "Y" ]

then

break

fi

#在用户选择了y/Y后,程序就会退出while循环,执行后面的程序代码。

if [ "$choice" = "q" -o "$choice" = "Q" ]

then

echo "Nothing to do!"

exit 1

fi

if [ "$choice" = "n" -o "$choice" = "N" ]

then

cp -f ./qcd $bin_content/

cp -f ./qcd.sh $prof_content/

echo "install qcd OK, but do not overwrite it!"

echo "version is 1.00"

exit 1

fi

#注意:在用户选择n/N时,该安装程序只是将qcd和qcd.sh的文件覆盖掉了原来的文件

#而没有覆盖掉用户使用该程序时的设置目录(即没有执行 cp -f ./history_dir $setu

#p_content/代码),然后退出该函数。

echo -n "You have installed qcd, overwrite it(y\Y or q\Q or n\N)? "

#上面一行回显代码的作用是:当进入while循环后没有按下指定的按键时,

#让程序继续显示提示内容提示操作者。

done

fi

if [ -r $setup_content ] #判断这个安装目录是否存在,不存在就创建。

then

:

else

mkdir $setup_content

fi

#下面的代码是在用户按下y/Y时,执行的代码。其中将用户的历史设置

#用空文件(history_dir)取代了。

cp -f ./qcd $bin_content/

cp -f ./history_dir $setup_content/

cp -f ./qcd.sh $prof_content/

}

delete() #卸载程序函数

{

[ -r $history_dir ] || \

[ -r $bin_content/qcd ] || \

[ -r $prof_content/qcd.sh ] || \

! echo "Your computer has not qcd!" || ! echo "Nothing to do!" || exit 1

#上面代码首先检测history_dir文件是否存在。如果history_dir文件不存在,

#然后才判断qcd目录是否存在。如果qcd目录不存在,然后才判断qcd.sh文件是否存在,

#如果qcd.sh文件都不存在,说明该程序没有安装而且没有残余项,所以就不用执行

#卸载程序了,直接退出这个卸载程序即可。

#在echo之前的!是表明对两个||之间的命令进行取非(为假)那么||后的命令才能得到执行。

#注意不可以改写成下面这样:

#echo "Your computer has not qcd!" && echo "Nothing to do" && exit 1

echo -n "Are you sure to delete qcd(y\Y or q\Q)? "

while read choice

do

if [ "$choice" = "y" -o "$choice" = "Y" ]

then

break

fi

if [ "$choice" = "q" -o "$choice" = "Q" ]

then

echo "Nothing to do!"

exit 1

fi

echo -n "Are you sure to delete qcd(y\Y or q\Q)? "

done

rm -rf $setup_content

rm -f $bin_content/qcd

rm -f $prof_content/qcd.sh

}

usage() #用途函数用于提示操作者正确的输入方式。

{

echo "<install> install qcd on your computer."

echo "<install del> delete qcd from your computer."

exit 1

}

echo "Qcd Install Software"

echo "Written By XieWei 2004"

if [ $# -eq 0 ] #特殊环境变量:$#表示命令行参数的总数,为0就是没有参数,那么就

then #执行安装程序函数。

setup #调用安装函数

echo "install qcd OK!"

echo "version is 1.00"

exit 1

fi

if [ $# -gt 1 ] #参数个数大于1不符合规则,那么就执行用途函数。

then

usage #调用用途函数

fi

case $1 in #对第一命令行参数进行判断,如果为del,那么就执行卸载程序的函数。

del) #不然就继续执行用途函数提示操作者正确的输入命令方式。

delete #调用卸载函数

echo "have delete qcd OK!"

;;

*)

echo "Input command incorrect!"

echo "Please follow:"

usage #调用用途函数

;;

esac

很久前的东西,转移到csdn上,上面注释有些不对,抱歉。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: