shell编程值之shell流程控制(7)
条件判断式
1 按照文件类型判断(常用类型)
| 测试类型 | 作用 |
|---|---|
| -d 文件 | 判断该文件是否存在,并且是否为目录文件(是目录文件为真) |
| -e 文件 | 判断该文件是否存在(存在为真) |
| -f 文件 | 判断该文件是否存在,并且是否为普通文件(是普通文件为真) |
[-d /root] && echo 'yes' || 'no']
判断/root是否为一个目录,是打印yes不是打印no
2 两种判断格式
test -e /root/install.log
[-e /root/install.log]
2 两个文件之间进行比较
| 测试选项 | 作用 |
|---|---|
| 文件1 -nt 文件2 | 判断文件1的修改时间是否比文件2的新(如果新为真) |
| 文件1 -ot 文件2 | 判断文件1的修改时间是否比文件2的旧(如果旧为真) |
| 文件1 -ef 文件2 | 判断文件1是否和文件2 的inode好一直,可以理解为两个文件是否为通一个文件。这个判断用于判断硬连接是很好的方法 |
2 两个整数之间的比较
| 测试选项 | 作用 |
|---|---|
| -eq | 是否相等 |
| -ne | 是否不相等 |
| -gt | 是否大于 |
| -lt | 是否小于 |
| -ge | 是否大于等于 |
| -le | 是否小于等于 |
3 字符串的判断
| 测试选项 | 作用 |
|---|---|
| -z 字符串 | 判断字符串是否为空 |
| -n 字符串 | 判断字符串是否为非空 |
| == | 是否相等 |
| != | 不相等 |
4 多重条件判断
| 测试选项 | 作用 |
|---|---|
| 判断1 -a 判断2 | 逻辑与,两个都为真,还为真 |
| 判断1 -o 判断2 | 逻辑或,有一个为真就为真 |
| !判断 | 逻辑非,取反 |
单分支if语句
if [条件判断式]; then
程序
fi
或者
if [条件判断式]
then
程序
fi
判断登陆的用户是否root
#!/bin/bash
test=$(env | grep "USER" | cut -d "=" -f2)
if ["$test" == root]
then
echo 'user is root'
fi
双分支if语句
if [条件判断式]
then
成立
else
不成立
fi
多分支if语句
if [条件判断式]
then
成立
elif [条件判断式2]
then
else
不成立
fi
case语句
case $变量名 in
"值1")
程序1
;;
"值2")
程序2
;;
"值3")
程序3
;;
esac
判断用户输入
#!/bin/bash
read -p 'please choose yes/no' -t 30 cho
case $cho in
'yes')
echo 'yes'
;;
'no')
echo 'no'
*)
echo $cho
;;
esac
for循环
语法1
for 变量 in 值1 值2 值3
do
done
语法2
for((初始值;循环控制条件;变量变化))
do
程序
done
批量解压缩文件
#!/bin/bash
cd /root/test
ls *.tar.gz > ls.log
for i in $(cat ls.log)
do
tar -zxf $i &>/dev/null
done
rm -rf /lamp/ls.log
从1加到100
#!/bin/bash
s=0
for((i=1;i<=100;i=i+1))
do
s=$(($s+$i))
done
while循环和util循环
从1加到100
#!/bin/bash
i=1
s=0
while [ $i -le 100 ]
do
s=$(($s+$i))
i=$(($i+1))
done
shell编程值之shell流程控制(7)的更多相关文章
- shell编程-条件判断与流程控制
1.条件判断式 按照文件类型进行判断: 两种判断格式: test -e /root/install.log [ -e /root/install.log ] 判断命令是否正确执行: [ -d /roo ...
- shell重温---基础篇(流程控制&if判断&for&while&循环操作)
和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search( ...
- shell(三)if流程控制
流程控制 if 流程控制 基本语法 单分支结构 if [];then fi 两分支结构 if [];then else fi 多分支结构 if [];then elif[];then elif[];t ...
- shell编程基础(二): shell脚本语法之分支语句和循环语句
一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...
- shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)
如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...
- Shell编程学习之Shell编程基础(一)
这篇随笔将要介绍关于Shell编程的基本知识,这些将会在假设你已经熟悉了Linux系统和命令行的基本知识. 构建基本脚本 你应该了解或熟悉使用Shell命令行了,但是只是使用Shell命令行的命令,有 ...
- swift_简单值 | 元祖 | 流程控制 | 字符串 | 集合
//: Playground - noun: a place where people can play import Cocoa var str = "Hello, playground& ...
- 小苏的Shell编程笔记之六--Shell中的函数
http://xiaosu.blog.51cto.com/2914416/531247 Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以 ...
- Shell编程-11-子Shell和Shell嵌套
目录 什么是子Shell 子Shell产生的途径 Shell脚本调用模式 什么是子Shell 子Shell的概念其实是贯穿整个Shell的,如果想要更好的理解和写Shell脚本则必须要了解子S ...
随机推荐
- 从零开始学习前端开发 — 16、CSS3圆角与阴影
一.css3圆角: border-radius:数值+单位; 1.设置一个值:border-radius:20px; 四个方向圆角都为20px(水平半径和垂直半径相等) 2.设置两个值 border- ...
- 浅谈linux虚拟内存结构
一个虚拟存储器系统要求硬件和软件之间紧密写作(mmu(内存管理单元,虚拟地址到物理地址的翻译),TLB块表(虚拟地址到物理地址index,虚拟寻址),l1,l2,l3高速缓存(物理单元数据)物理寻址) ...
- Windows和Linux如何使用Java代码实现关闭进程
在用selenium做自动化测试时,由于各种不明原因,有时Chrome浏览器会出现假死的情况,也就是整个浏览器响应超时,本人脚本主要部署在Windows机器上,所以主要以Windows为主,浏览器为C ...
- 【WebApi系列】详解WebApi如何传递参数
WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...
- junit的意义
写了这么久代码了,自己从来没有好好的玩过junit.马上过年了,打算趁这段时间自己来写一套web框架,但是这里有一个很大的尴尬就是我平时编码并没有认真的来写测试类.那么自己在写框架的时候,不测试肯定是 ...
- angular4在prod模式下的JIT编译问题
最近利用angular4开发一个项目,由于画面中的显示都是从数据表中读取,通过设置显示FLAG和显示顺序对画面布局按既定规则控制的, 所以必须利用动态编译实现. 方法如下, 1,获取JitCompil ...
- ehcache模糊批量移除缓存
目录 前言 实现 总结 前言 众所周知,encache是现在最流行的java开源缓存框架,配置简单,结构清晰,功能强大.通过注解@Cacheable可以快速添加方法结果到缓存.通过@CacheEvic ...
- [DeeplearningAI笔记]改善深层神经网络_优化算法2.3_2.5_带修正偏差的指数加权平均
Optimization Algorithms优化算法 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.3 指数加权平均 举个例子,对于图中英国的温度数据计算移动平均值或者说是移动平均值( ...
- mongodb进阶
一.游标 先插入一张表的数据 for(i=0; i<100; i++) { db.c.insert({x : i}); } 定义一个游标 var cursor = db.c.find(); 以循 ...
- windows下cmd常用
windows下cmd常用 shutdown -s -t 2------2秒后关机 加上-f选项意思是强制执行 shutdown -r -t 2------2秒后重启 加上-f选项意思是强制执行 lo ...