sh7.创建yum源脚本练习

练习1,

写一个脚本分别计算1-100,之间奇数和偶数之和

ji_sum.sh

#!/bin/bash
#
let sum=0
for I in {1..100};do
    if [ $[$I%2] -eq 1 ];then
        let sum+=I
    fi
done
echo $sum

2500


ou_sum.sh

#!/bin/bash
#
let sum=0
let I=1
while [ $I -le 100 ];do
    if [ $[$I%2] -eq 0 ];then
        let sum+=$I
    fi
    let I++
 done
echo $sum

2500


扩展:计算1-1000相加和,大于10000则退出

#!/bin/bash
#
let sum=0
let I=1
while [ $I -le 1000 ];do
  let sum+=I
  if [ $sum -ge 10000 ];then
    break                    # break ,条件满足,则退出程序。
  fi
  let I++
done
echo $I
echo $sum

141
10011

 

练习2.

while ,break

提示用户输入信息,判断是否为文件,输入’quit'则直接退出

#!/bin/bash
#
while :;do                                      # 直接循环
    read -p "File path: " FILENAME
    [ $FILENAME == 'quit' ] && break  #输入 'quit'退出
    if [ -e $FILENAME ];then                # ‘ -e ' 文件判断
        echo " The is file!"
    else
        echo " The is not file~"
    fi
done

 

 

练习3.

continue 跳出当前循环,不会退出

取出shell为bash的用户,要求:ID 大于505,且只取前6位

[root@beary test]# cat linebash.sh 
#!/bin/bash
#
FILE=/etc/passwd
let I=0

while read LINE;do       #逐行读取文档
    [ `echo $LINE | awk -F: '{print $3}'` -le 505 ] && continue
    [ `echo $LINE | awk -F: '{print $7}'` == '/bin/bash' ] && echo $LINE | awk -F: '{print  $1}' && let I++
    [ $I -eq 6 ] && break
done < $FILE               #输入重定向


continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环
while 的特殊用法一:
while :;do
 
done
 
while的特殊用法二:
while read LINE; do
 
done < /PATH/TO/SOMEFILE
 
while, untile,for
break: 提前退出
continue: 提前结束本轮循环,进入下一轮循环
 
 
练习4.
写一个脚本,完成以下功能:
说明:此脚本能于同一个repo文件中创建多个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'.
 
 1 [root@beary test]# cat yumfile.sh 
 2 #!/bin/bash
 3 #
 4 REPOFILE=/etc/yum.repos.d/$1
 5 
 6 if [ -e $REPOFILE ];then       # 判断文件是否已经
 7     echo "$1 exists."
 8     exit 3
 9 fi
10 
11 read -p "Repository ID: " REPOID
12 until [ $REPOID == 'quit' ];do
13     echo "[$REPOID]" >> $REPOFILE
14     read -p "Repository name: " REPONAME
15     echo "name=$REPONAME" >> $REPOFILE
16     read -p "Repository url: " REPOURL
17     echo "baseurl=$REPOURL" >> $REPOFILE
18     echo -e 'enabled=1\ngpgcheck=0' >> $REPOFILE  #enabled默认为1 ,gpgcheck默认为0
19     read -p "Repository ID: " REPOID
20 done
21 
22 echo "hello,world."


[root@beary test]# cat /etc/yum.repos.d/test2.repo
[2]
name=ABC
baseurl=http://abc.test.com
enabled=1
gpgcheck=0
[3]
name=abcw
baseurl=www.123.com
enabled=1
gpgcheck=0

 

 

 

 

posted @ 2016-12-05 17:07  信子2016  阅读(369)  评论(0编辑  收藏  举报