练习1,

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

ji_sum.sh

#!/bin/bash
#
let sum=
for I in {..};do
if [ $[$I%] -eq ];then
let sum+=I
fi
done
echo $sum ou_sum.sh #!/bin/bash
#
let sum=
let I=
while [ $I -le ];do
if [ $[$I%] -eq ];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= while read LINE;do #逐行读取文档
[ `echo $LINE | awk -F: '{print $3}'` -le ] && continue
[ `echo $LINE | awk -F: '{print $7}'` == '/bin/bash' ] && echo $LINE | awk -F: '{print $1}' && let I++
[ $I -eq ] && 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'.
 
 [root@beary test]# cat yumfile.sh
#!/bin/bash
#
REPOFILE=/etc/yum.repos.d/$ if [ -e $REPOFILE ];then # 判断文件是否已经
echo "$1 exists."
exit
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 url: " REPOURL
echo "baseurl=$REPOURL" >> $REPOFILE
echo -e 'enabled=1\ngpgcheck=0' >> $REPOFILE #enabled默认为1 ,gpgcheck默认为0
read -p "Repository ID: " REPOID
done 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

 
 

sh7.创建yum源脚本练习的更多相关文章

  1. CentOS7linux通过http配置共享自动创建yum源的shell脚本

    因工作需要用到,所以记录一下配置流程 环境介绍: 两台CentOS7系统 yum源服务主节点IP:192.168.1.78 从节点IP:192.168.1.79(79从78上获取yum源) 配置78节 ...

  2. CentOS6.5创建yum源

    昨天给布置个新的需求,做一个Yum仓库,要求是HTTP式的,在某个服务器上搭建个Yum仓库,能让其它的机器有了这个机器的.repo仓库文件后就可以从本地下载安装软件,以前都是下载后直接yum inst ...

  3. Centos7一键配置阿里云yum源脚本

    Centos7一键配置阿里云yum源脚本 工作中linux系统经常要配置网络yum,故写了一个简单的配置阿里云yum源的的脚本可以单独使用也可以在做自动化部署的时候调用. #!/bin/bash # ...

  4. 本地安装yum源脚本

    rpm -qa|grep yum   //检查是否安装了yum. 如果没有安装就执行下面的文件 创建一个以xxx.sh结尾的文件 #!/bin/bash #创建两个文件用于挂载文件 mkdir /mn ...

  5. 本地创建yum源并安装lnmp

    注意:安装系统时,文件类型要未xfs类型,root要分配最多的空间 1.挂载安装光盘mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1511.iso /mnt ...

  6. redhat linux 5上创建本地yum源

    1.挂载光驱 [root@rh5rac1 ~]#mkdir -p /mnt/cdrom [root@rh5rac1 ~]#mount /dev/cdrom /mnt/cdrom 2.将redhat光盘 ...

  7. 红帽系列linux自行配置本地yum源

    yum是红帽系列的一种包管理工具,能方便的自动解决安装包的依赖关系.以前用rpm包管理安装gcc时,rpm -ivh gcc.rpm ,一般会提示要安装gcc需要安装某某lib库,等你找到那个库的rp ...

  8. Linux使用系统光盘作为YUM源

    --Linux使用系统光盘作为YUM源------------------------------2013/11/07 1. 挂载光盘 Linux代码   # mkdir /media/cdrom   ...

  9. CentOS Yum 源搭建

    创建yum源服务,主要用到了两个软件createrepo和httpd.前者是创建yum源索引的工具,后者是提供文件在线流浪的功能,当然,除了httpd之外,你也可以使用nginx替代. creater ...

随机推荐

  1. 高通vuforia+Unity3D 制作ar app

    很简单就可以用Unity3D做出增强现实的一个小例子 新人第一次写博客,若出现错误望指正^_^ 需要下载de东西: unity3d 5.0 http://unity3d.com/get-unity   ...

  2. Beta版本冲刺第一天

    Aruba 408 409 410 428 429 431 完成任务: 瀑布流方块长按删除提示 实现获取剪贴板内容并保存到数据库 常驻通知栏模块界面实现,设置按钮并预留intent 立会照片: 燃尽图 ...

  3. UVA445

    测试了很多数据都没问题,但是就是一直WA... #include<stdio.h> #include<string.h> int main(){ ]; int n; while ...

  4. HTML之CSS学习

    学前预备 <!DOCTYPE html> <html> <head> <title>标题</title> <meta charset= ...

  5. Asp.net C# 把 Datatable转换成JSON 字符串

    First of all, we have to fetch the records from the database (MS Sqlserver) into the C# DataTable, o ...

  6. vector it->和*it

    //每次写代码总是被迭代器的iter->和*iter弄晕,主要是被protobuf弄晕了 #include <vector> struct test{ test(){ memset( ...

  7. JS中SetTimeOut和SetInterval方法的区别?

    1.setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭.由 ...

  8. dom 的介绍

    直接上干货 ...网址在此,,,,, <a href="https://developer.mozilla.org/zh-CN/docs/Web/API/Document_Object ...

  9. nginx + SSL优化配置

    nginx + SSL优化配置: #http段添加如下配置项: http { ssl_prefer_server_ciphers on; #设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户 ...

  10. 移动端开发概览【webview和touch事件】

    作为一个前端,而且作为一个做移动端开发的前端,那意味着你要有三头六臂,跟iOS开发哥哥一起打酱油,跟Android开发哥哥一起修bug... Android vs Ios 我在webkit内核的chr ...