写一个脚本,此脚本能于同一个repo文件中创建多个Yum源的指向 上节课所讲的定义yum仓库
1、接受一个文件名做为参数,此文件存放至/etc/yum.repos.d目录中,且文件名以。repo为后缀;要求此文件不能事先存在,否则报错;
2、在脚本中,提醒用户输入repo id;如果为quit,则退出脚本,否则继续完成一下步骤;
3、repo name以及baseurl的路径,而后以repo文件的格式将其保存至指定的文件中;
4、enabled默认为1,而gpgcheck默认设定为0
5、此脚本会循环执行多次,除非用户为repo id 指定为quit
回顾:.,$s@/etc/yum.repos.d/$1@$REPOFILE@g 从当前行到最后一行 替换这个为那个
#!/bin/bash
#
REPOFILE=/etc/yum.repos.d/$1
if [ -e $REPOFILE ]; then
echo "$1 is exist."
exit 3
fi
read -p "Repository ID:" REPOID
until [ $REPOID == ‘quit‘ ]; do
echo "[$REPOID]" >> $REPOFILE
read -p "Repository name " REPONAME
echo "name=$REPONAME" >> $REPOFILE
read -p "Repository Baseurl" REPOURL
echo "baseurl=$REPOURL" >> $REPOFILE
echo -e ‘enabled=1\ngpgcheck=0‘ >> $REPOFILE
read -p "Repository ID: " REPOID
done
########################################################################################
计算100以内所有奇数的和 continue 提前进入下一轮循环
#!/bin/bash
#
let SUM=0
let I=0
while [ $I -lt 100 ]; do
let I++
if [ $[$I%2] -eq 0 ]; then
continue
fi
let SUM+=$I
done
echo $SUM
#####################################################################################3
计算1000以内所有正整数的和,当sum>5000的时候就不要加了 break 提前退出循环 -e 文件存在
#!/bin/bash
#
declare -i SUM=0
for I in {1..100}; do
let SUM+=$I
if [ $SUM -gt 5000 ]; then
break
fi
done
echo $I
echo $SUM
##################################################
格式:
while read LINE; do
done < /path/to/somefile
判断/etc/passwd下的用户哪个用户的shell为bin下的bash,如果是bash就显示此用户的用户名,否则不显示;
且显示6个信息就自动退出;且用户ID小于等于505就不显示
#!/bin/bash
#
let I =0
FILE=/etc/passwd
while read FILE; do
[ `echo $FILE | awk -F : ‘{print $3}‘` -lt 505 ] && continue
[ `echo $FILE | awk -F : ‘{print $7}‘` == ‘/bin/bash‘ ] && echo $FILE | awk -F : ‘{print $1}‘ && let I++
[ $I -eq 6 ] && break
done < $FILE
###################################################################################################################
1、判断一个指定的bash脚本是否存在语法错误;如果有错误,则提醒用户键入Q或q无视错误并退出,其他任何键都可以vim打开这个指定的脚本
2、如果用户通过vim打开编辑后并保存退出时,仍然有错误,则重复第一步的内容,否则就正常关闭退出
#!/bin/nbash
#
bash -n $1
until bash -n $1 &> /dev/null; do
read -p "some error q/Q to quit others for edit" CHOICE
case $I in
q|Q)
echo "something wrong"
exit 5;;
*)
vim + $1;;
esac
done
break 退出循环 continue 提前进入下一轮循环 while的特殊用法
原文地址:http://10183596.blog.51cto.com/10173596/1690138