文档章节

shell编程中的循环脚本

Double_冬
 Double_冬
发布于 2018/08/16 20:18
字数 653
阅读 36
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>


本文中的部分脚本来源于网络,就不申明原创了,如果这些东西自己学会了,那就是属于自己的了。


求从1加到100的和

使用for循环求和:

#!/bin/bash

declare -i sum=0

for ((i=1;i<=100;i++));do

let sum+=$i

done

echo "sum=$sum"

使用until循环求和:

#!/bin/bash

i=1

sum=0

until [ $i -gt 100 ];do

let sum+=$i

let i++

done

echo "sum is:$sum"

使用while循环求和:

#!/bin/bash

i=1

sum=0

while [ $i -le 100 ];do

let sum+=$i

let i++

done

echo "sum is:$sum"


求100以内的偶数之和

使用for循环求和:

#!/bin/bash

i=0

sum=0

for i in `seq 100` ;do

    if [ $[$i%2] -eq 1 ];then

continue

fi

let sum+=$i

done

echo "sum is:$sum"

使用while循环求和:

#!/bin/bash

i=0

sum=0

while [ $i -le 100 ];do

let i++

if [ $[$i%2] -eq 1 ];then

continue

fi

let sum+=$i

done

echo "sum is: $sum"

使用until循环求和:

#!/bin/bash

i=0

sum=0

until [ $i -gt 100 ];do

let i++

if [ $[ $i%2 ] -eq 1 ];then

continue

fi

let sum+=$i

done

echo "sum is: $sum"


编写一个九九乘法表

使用for循环:

#!/bin/bash

#for i in `seq 9`;do

for ((j=1;j<=9;j++));do

for ((i=1;i<=j;i++));do

echo -ne "$i*$j=$(($i*$j))\t"

done

echo

done

使用while循环:

#!/bin/bash

i=1

j=1

while[ $j -le 9 ];do

while [ $i -le $j ];do

echo -ne "$i*$j=$(($i*$j))\t"

let i++

done

echo

let i=1

let j++

done

使用until循环:

#!/bin/bash

i=1

j=1

until [ $j -gt 9 ];do

until [ $i -gt $j ];do

echo -ne "$i*$j=$(($i*$j))\t"

let i++

done

echo

let i=1

let j++

done


通过脚本判断用户是否登入系统,如果没有,则每10秒循环一次

使用while循环:

#!/bin/bash

read -p "pls input a username: " username

while ! `who |grep "^$username" &> /dev/null`;do

sleep 10

done

echo "`date +%F-%H:%M:%S` $username logged on">>/tmp/user.log


使用case循环来获取系统信息

#!/bin/bash

cat <<EOF

1) show cpu information;

2) show memory information;

3) show disk information;

4) quit

EOF


cpu_info(){

lscpu

}

mem_info(){

cat /proc/meminfo

}

disk_info(){

fdisk -l

}

quit(){

echo "quit"

exit 0

}

read -p "pls input a num: " num

if [ $num -ne 1 -a $num -ne 2 -a $num -ne 3 -a $num -ne 4 ];then 

read -p "pls input a num again: " num

fi


case "$num" in 

1) 

cpu_info

;;

2)

mem_info

;;

3)

disk_info

;;

4)

quit

esac




本文分享自微信公众号 - 运维开发故事(mygsdcsf)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Double_冬
粉丝 0
博文 186
码字总数 284972
作品 0
成都
私信 提问
加载中
请先登录后再评论。
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
6.2K
18
在多个浏览器上运行脚本--Queen

假设你想和朋友们玩这么个游戏:你写下某个数字,然后让朋友们猜你写的是什么数字。你的朋友们将不断的给你一些猜测的数字,直到猜中为止。 现在想象你的朋友都是使用的浏览器,这个游戏就相...

匿名
2013/01/24
4.7K
1
漏洞检测工具--Peach Fuzzer

Peach是一种用Python编写的 Fuzzer。这种工具有助于发现并公开许多漏洞,并认为是黑客和安全团体中最流行的工具之一。为了利用Peach框架,必须创建Phthon脚本,脚本 中包含了在服务器上执行的...

匿名
2013/02/06
8.9K
1
研究虚拟机--Jikes RVM

Jikes研究虚拟机(Jikes Research Virtual Machine,简称Jikes RVM)是一种成熟的用于执行Java程序的虚拟机,其早期版本与当前版本分别在通用公共许可证(CPL)与Eclipse公共许可证(EPL)下开...

匿名
2013/02/13
1.2K
0
开源渲染器--LuxRender

LuxRender 是一款物理真实的、无偏差的开源渲染器。 LuxRender渲染是根据渲染方程来模拟光的传输,生成物理真实的图像。但LuxRender 只是一款渲染程序而不是3D建模程序,它需要其它3D程序来创...

匿名
2013/03/03
1W
0

没有更多内容

加载失败,请刷新页面

加载更多

旋转子段 (思维stl)

题目: 大概意思就是给你一个序列,你可以选择一段区间使它左右翻折一遍,然后呢,从1到n找一遍,看a[i]==i的数最多是多少。 其实刚才我已经把暴力思路说出来了,枚举每一个区间长度,枚举每...

osc_npw5uz1o
9分钟前
0
0
回忆录

前言? 果然退役的蒟蒻不仅没有留下有价值的学习资料,甚至连能看的颓废资料都没有。 其实这一年时间里一直想写一篇像样的回忆录。 想把高三也写进去?现在高三结束了。没时间写?现在有了。...

osc_z9ptnny9
11分钟前
0
0
mysql启动失败,unit not found

1 mysql启动 Failed to start mysqld.service: Unit not found. 2 查询/etc/init.d/下是否存在mysqld ll /etc/init.d/ | grep mysqld 发现该目录下并没有mysqld的文件,若存在,请备份一下 ...

osc_um3gbrdm
13分钟前
5
0
域名解析到底应该肿么破——详解域名解析类型

原文地址:https://www.wjcms.net/archives/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E5%88%B0%E5%BA%95%E5%BA%94%E8%AF%A5%E8%82%BF%E4%B9%88%E7%A0%B4%E8%AF%A6%E8%A7%A3%E5%9F%9F%E5%90%8D%......

神兵小将
13分钟前
0
0
Java并发编程:volatile关键字解析

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

osc_3r4js8qy
14分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部