bash循环
bash脚本-循环02
1.循环执行的条件
2.循环控制语句:continue,break,sleep
2.1continue
while CONDITION1;do
cmd1
...
if condition2;then
continue
fi
cmd2
...
done
#/bin/bash
#
declare -i sum=0
declare -i i=0
while [ $i -le 100 ];do
let i++
if [ $[$i%2] -eq 1 ];then
continue
fi
let sum+=$i
done
echo "sum is $sum"
2.2 break
while CONDITION1;do
CMD1
if CONDITION2;then
break
fi
done
while true;do
循环体
done
#!/bin/bash
declare -i sum=0
declare -i i=1
while true;do
let sum+=$i
let i+=2
if [ $i -gt 100 ];then
break
fi
done
echo "sum is $sum"
#!/bin/bash
name=zhangpf
- until (who | grep "^$name\>" &> /dev/null);do
echo $?
sleep 3
done
echo "$(date +"%F-%T") $name logged on" >> /tmp/sleep.log
#!/bin/bash
name=zhangpf
while true;do
if who | grep "^$name\>" &> /dev/null;then
break
fi
sleep 3
done
echo "$(date +"%F-%T") $name logged on" >> /tmp/login.log
3.循环体的特殊用法
3.1 while循环的特殊用法(遍历文件的行)
while read VARIABLE;do
循环体;
done < /path/to/somefile
#依次读取/path/to/somefile文件中的每一行,且将基赋值给VARIABLE变量;
#!/bin/bash
while read line;do
id=$(echo $line | cut -d: -f3)
name=$(echo $line | cut -d: -f1)
shell=$(echo $line | cut -d: -f7)
if [ $[$id%2] -eq 1 ];then
echo "$name,$id,$shell."
fi
done < /etc/passwd
for ((控制变量初始化;条件判断表达式;控制变量的修正语句));do
循环体
done
#!/bin/bash
declare -i sum=0
for ((i=0;i<=100;i++));do
let sum+=$i
done
echo "sum=$sum"
#!/bin/bash
for ((i=1;i<=9;i++));do
for ((j=1;j<=i;j++));do
echo -e -n "${i}X${j}=$[${i}*${j}]\t"
done
echo
done
4.bash语句之case语句
case $VARIABLE in
PAT1)
分支1
;;
PAT2)
分支2
;;
。。。。
*)
分支n
;;
esac
#!/bin/bash
#version 0.0.1
#author:zhangpf
#date:2016.07
#description:this just a test.
#
prog=$(basename $0)
lockfile=/var/lock/subsys/$prog
case $1 in
start)
if [ -f $lockfile ];then
echo "$prog is running yet."
else
touch $lockfile
[ $? -eq 0 ] && echo "start $prog finished."
fi
;;
stop)
if [ -f $lockfile ];then
rm -f $lockfile
[ $? -eq 0 ] && echo "stop $prog is finished."
else
echo "$prog is not running."
fi
;;
restart)
if [ -f $lockfile ];then
rm -f $lockfile
touch $lockfile
echo "restart $prog finished."
else
touch -f $lockfile
echo "start $prog finished."
fi
;;
status)
if [ -f $lockfile ];then
echo "$prog is running."
else
echo "$prog is stopped."
fi
;;
*)
echo "Usage:$prog {start|stop|restart|status}"
exit 1
esac
bash循环的更多相关文章
- bash循环语句
1 )单分支if语句 if 测试条件 :then 如果满足条件就执行这里的代码 f 2)双分支的if语句 if 测试条件:then 如果满足条件就执行这里的代码 else 如果不满足条件就执行这里 ...
- bash循环for/while/until
shell流程控制之一:for循环 for VAR in LIST; do STATEMENT1 ... done 例: ...
- Bash循环分类介绍
方法一: #!/bin/bash ` do #code here echo $i done 方法二:C语言风格 #!/bin/bash ; i<=; i++)) do printf " ...
- bash循环得到日期目录
#!/bin/bash today=$(date "+%Y%m%d") echo 'today is :'${today} single_input="raw_data/ ...
- bash脚本:集群资源争夺战crazy-killer
背景 公司的集群很多人一起用,有时候就难免资源紧张,某次需要用的时候没资源等了半天还是没资源,再等半天还是没资源,于是就写了个脚本泄愤,建议看到的人拷走放在自己公司集群上长期运行 :) 实现 此脚本运 ...
- Bash 实例,第二部分
我们先看一下处理命令行自变量的简单技巧,然后再看看 bash 基本编程结构. 接收自变量 在 介绍性文章 中的样本程序中,我们使用环境变量 "$1" 来引用第一个命令行自变量.类似 ...
- linux shell 报错 Syntax error: Bad for loop variable
在linux下写了一个简单的shell,循环10次. test.sh #!/bin/bash ## ##循环10次 ## ; i<; i++)); do echo Good Morning ,t ...
- shell脚本练习题->1
猜随机数的大小 描述: 写一个猜数字脚本,当用户输入的数字和预设数字(随机生成一个0-100的数字)一样时,直接退出,否则让用户一直输入:并且提示用户输入的数字比预设数字大或者小 分析: 1:随机数字 ...
- shell系统检测->
系统状态检测脚本练习 1-> 查看磁盘状态 思路:查看磁盘/当前使用状态,如果使用率超过80%则报警发邮件 1.获取磁盘当前使用的值 df -h|grep /$ 2.从获取到的值中提取出,对应的 ...
随机推荐
- loj#2020 「AHOI / HNOI2017」礼物 ntt
loj#2020 「AHOI / HNOI2017」礼物 链接 bzoj没\(letex\),差评 loj luogu 思路 最小化\(\sum\limits_1^n(a_i-b_i)^2\) 设改变 ...
- js函数式编程curry与compose实现
//自行实现以下curry函数和compose //curry function curry(fn) { return function aa (...arg) { if (arg.length &g ...
- stm32库函数建工程和使用Keil自带库建工程有没有区别?发现了同样的程序在两种情况下keil自带库可以运行的情况,不知是什么原因
我使用库函数建的工程(非Keil自带库),为了实现SPI对Si24r1芯片数据的读写,以验证stm32是否可以和si24r1能够正常通信,发现使用库函数建的工程程序不能通过,读出来的数据和写的数据不一 ...
- HackerRank-Python攻城歷程-3.List( Find the Second Largest Number )
if __name__ == '__main__': n = int(input()) arr = map(int, input().split()) print(sorted(list(set(ar ...
- js回调函数以及同步与异步
1. 背景介绍javascript的单线程特性由于javascript语言是一门“单线程”的语言,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任 ...
- IBase<T>
public interface IBase<T>//基类 { IEnumerable<T> SelectAll();//查询所有 T FindById(int ID);//根 ...
- LoRa无线技术介绍
什么是LoRa LoRa是semtech公司创建的低功耗局域网无线标准,低功耗一般很难覆盖远距离,远距离一般功耗高,要想马儿不吃草还要跑得远,好像难以办到.LoRa的名字就是远距离无线电(Long R ...
- multiThread (一)
并发系列(1)之 Thread 详解 阅读目录 一.线程概述 二.线程状态 三.源码分析 1. native注册 2. 构造方法和成员变量 3. start 方法 4. exit 方法 5. 弃用 ...
- angular配置路由/子页面+vue配置路由/子页面
1.在vue.js中组件可以复用,然后最近配置了几个子页面 在 这个文件中配置路由,子页面的配置跟其他一样,只不过path不同. routes: [ { path: '/', ...
- TFLite基础知识
此基础知识仅为个人学习记录,如有错误或遗漏之处,还请各位同行给个提示. 概述 TFLite主要含有如下内容: (1)TFLite提供一系列针对移动平台的核心算子,包括量化和浮点运算.另外,TFLite ...