练习1
写一个脚本,完成如下功能;
说明: 此脚本能于同一个repo文件中建立多个yum源的指向;
1, 接受一个文件名作为参数,此文件存放至/etc/yum.repos.d目录中,且文件名以.repo为后缀;要求,此文件不能事先存,不然,报错;
2, 在脚本中,提醒用户输入repo id; 若是为quit; 则退出脚本; 不然继续完成下面的步骤;
3, repo name 以及baseurl 的路径,然后以repo文件的格式将其保存至指定的文件中;
4, enable默认为1,而gpgcheck默认设定为0;
5, 此脚本会循环执行多闪,除非用户为repo.d指定为quit.
[root@localhost script]# cat lx35.sh
#!/bin/bash
REPOFILE="/etc/yum.repos.d/$1"
if [ -e $REPOFILE ]; then
echo "Mistake. run it again."
exit 7
else
read -p "Please input Repo-ID:" RID
fi
until [ $RID == 'quit' ]; do
echo "[$RID]" >> $REPOFILE
read -p "Reposname:" RNAME
echo "name=$RNAME" >> $REPOFILE
read -p "Reposd Baseurl:" RURL
echo "baseurl=$RURL" >> $REPOFILE
echo -e "enable=1\ngpgcheck=0" >> $REPOFILE
read -p "Please input Repo-ID:" RID
donebash
练习2
写一个脚本,完成以下功能:ide
说明:此脚本可以为指定网卡建立别名,则指定地址;使用格式如:mkethalias.sh -v|--verbose -i ethXui
一、-i选项用于指定网卡;指定完成后,要判断其是否存在,若是不存在,就退出;url
二、若是用户指定的网卡存在,则让用户为其指定一个别名,此别名能够为空;若是不空,请确保其事先不存在,不然,要报错,并让用户从新输入;code
三、在用户输入了一个正确的别名后,请用户输入地址和掩码;并将其配置在指定的别名上;ip
四、若是用户使用了-v选项,则在配置完成后,显示其配置结果信息;不然,将不显示;
lx34.sh
#!/bin/bash
case $# in
'2')
if [ $1 != '-i' ]; then
echo "Mistake! Please run it again"
exit 9
fi
if ! ifconfig -a | grep "$2" &> /dev/null
; then
echo "The $2 is not exist."
exit 10
else
read -p "Please input alias:" BM
fi
until ! ip addr show | grep "$BM" &> /dev/null
; do
echo "The alias $BM has been."
read -p "Please input alias:" BM
done
read -p "Please input IP/MASK:" IP
if [ $BM = '' ]; then
ip addr add $IP dev $2
else
ip addr add $IP dev $2 label $BM
fi
;;
'3')
if [ $2 != '-i' -o $1 != '-v' ]; then
echo "Mistake! Please run script again."
exit 10
fi
if ! ifconfig -a | grep "$3" &> /dev/null
; then
echo "No $3 device."
exit 11
else
read -p "Please input another name:" BM
fi
until ! ip addr show | grep "$BM" &> /dev/null
; do
echo "$BM HAS been."
read -p "Please input another name:" BM
done
read -p "Please assine IP/MASK:" IP
if [ $BM = ' ' ]; then
ip addr add $IP dev $3
else
ip addr add $IP dev $3 label $BM
fi
ip addr show
;;
*)
echo "Please try it again."
exit 12
;;
esacinput