c语言sscanf函数的用法是什么
286
2022-11-12
根据变量的不同取值,重复执行命令序列(shell 第二天)
小白的shell之路
系统版本 Red Hat Enterprise Linux Server release 7.0
一:for循环的认识与应用
定义: 采用遍历式、列表式的执行流程,通过指定变量从值列表中循环赋值,每次复制后执行固定的一组操作。特点:通过变量控制,条件成立时循环;步长可控次数格式:for 变量名 in 值列表do命令序列done
例: 1)利用for循环输出:10 3 kk #!/bin/bash for i in 10 3 kk 【逐次执行】 do echo $i done [root@server0 /]# ./test.sh 10 3 kk 2)连续 输出3个nb #!/bin/bash for i in 10 3 kk 【输出结果不受值列表影响】 do echo nb done [root@server0 /]# ./test.sh nb nb nb 常用命令: 1. 造数: echo {1..100} 【1-100顺序列出】 seq 5 【1-5顺序列出】 2.不换行输出:echo -n 例: [root@server0 /]# seq 5 1 2 3 4 5 3)利用for循环和if语句实现测试某一网段ip是否可以ping通 #!/bin/bash a=0 b=0 for i in {10..20} do ping -c2 -i0.1 -W1 172.25.0.$i > /dev/null 【-c规定次数,-i设置回复时长,-W设置报错时长,将结果输出到黑洞设备】 if [ $? -eq 0 ];then 【判断该命令是否执行】 echo "可以" let a++ 【利用let运算计算出数量】 else echo "不可以" let b++ fi done
echo 你有 $a个可以ping通 echo 你有 $b个不可以ping通
4) 利用for循环设计99乘法表 #!/bin/bash 【本例用到两个for循环结构】 for i in {1..9} 【产生第一位数】 do for o in `seq $i` 【产生第二位数】 do echo -n "$i*$o=$[i*o] " 【计算结果和输出格式】 done echo 【换行】 done 二:while循环 定义: while循环属于条件式的执行流程,会反复判断指定的测试条件,只要条件成立即执行固定的一组操作,直到条件变化为不成立为止。 特点:一般通过变量来进行控制,在循环体内对变量值做相应改变,以便在适当的时候退出,避免陷入死循环 格式: while 条件测试 当条件满足时【满足即循环】 do 命令序列 done 例: 1)计算1-100的和 #!/bin/bash i=1 num=0 while [ $i -le 100 ] 【变量若小于等于100时则一直循环】 do let num+=i 【每次循环num的值都与i的值相加】 let i++ 【每次循环i的值都会加1】 done echo $num 2)猜数 #!/bin/bash i=$[RANDOM%100] 【产生1-100的随机数】 a=0 while : 【无条件,一直循环】 do read -p "shu ru:" num 【读取用户输入数字】 let a++ 【计算执行次数】 if [ $num -eq $i ];then 【判断是否猜中】 echo "终于TM猜中了" echo "TM猜$a次" exit 【符合即结束脚本】 elif [ $num -gt $i ];then echo "你个垃圾,猜这么大干屌" else echo "小了,兄弟" fi done 三:case 语句 特点:与if判断无异,对条件进行判断更简洁。 格式: case 变量值 in 【与模式对比,若相同即执行命令】 模式1) 命令;; 【注意:一定要加分号】 模式2 命令;; *) 【匹配任意其他】 命令#! /bin/sed -nf esac 例: 1)利用case语句判断用户输入和脚本输出 #!/bin/bash case $1 in redhat) 【判断用户输入是否为redhat】 echo "fedora";; 【成立则输出】 fedora) echo "redhat";; *) 【是否为其他】 echo "erro" esac 四:shell 函数 函数:为一段代码取别名 【定义时不会执行函数】 方法一: function 函数名 { 命令序列 .. .. } 方法二: 函数名(){ 函数序列 .. .. } 例: 1)常量函数【单次使用】 [root@server0 /]# jian(){ 定义 > mkdir /ceshi > cd /ceshi > } [root@server0 /]# jian 调用 [root@server0 ceshi]# 2)变量函数【可多次使用,执行时需在命令后加参数】 [root@server0 ceshi]# lianxi(){ > mkdir $1 > cd $1 > } [root@server0 ceshi]# lianxi yi [root@server0 yi]# **shell ××× 【利用死循环使机器内存瞬间用尽,造成死机】** #!/bin/bash .(){ .|.& } . 【利用shell 函数原理定义函数并连续执行】 常用命令: continue结束本次循环跳到下次循环 break可以结束整个循环 exit 结束脚本 例: 1)创建循环数到3则跳过 #!/bin/bash for i in {1..5} do [ $i -eq 3 ]&&break echo $i done echo "game over" [root@server0 /]# ./test.sh 1 2 game over 2)创建循环数到3即退出脚本 #!/bin/bash for i in {1..5} do [ $i -eq 3 ]&&exit echo $i done echo "game over" [root@server0 /]# ./test.sh 1 2
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~