条件判断式

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)的更多相关文章

  1. shell编程-条件判断与流程控制

    1.条件判断式 按照文件类型进行判断: 两种判断格式: test -e /root/install.log [ -e /root/install.log ] 判断命令是否正确执行: [ -d /roo ...

  2. shell重温---基础篇(流程控制&if判断&for&while&循环操作)

        和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search( ...

  3. shell(三)if流程控制

    流程控制 if 流程控制 基本语法 单分支结构 if [];then fi 两分支结构 if [];then else fi 多分支结构 if [];then elif[];then elif[];t ...

  4. shell编程基础(二): shell脚本语法之分支语句和循环语句

    一.分支语句 1.条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与 ...

  5. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  6. Shell编程学习之Shell编程基础(一)

    这篇随笔将要介绍关于Shell编程的基本知识,这些将会在假设你已经熟悉了Linux系统和命令行的基本知识. 构建基本脚本 你应该了解或熟悉使用Shell命令行了,但是只是使用Shell命令行的命令,有 ...

  7. swift_简单值 | 元祖 | 流程控制 | 字符串 | 集合

    //: Playground - noun: a place where people can play import Cocoa var str = "Hello, playground& ...

  8. 小苏的Shell编程笔记之六--Shell中的函数

    http://xiaosu.blog.51cto.com/2914416/531247 Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以 ...

  9. Shell编程-11-子Shell和Shell嵌套

    目录 什么是子Shell 子Shell产生的途径 Shell脚本调用模式 什么是子Shell     子Shell的概念其实是贯穿整个Shell的,如果想要更好的理解和写Shell脚本则必须要了解子S ...

随机推荐

  1. JQuery常用知识点及示例

    1.JQuery 名称解释 JQuery是封装了常用JS操作函数的一个库文件JQuery = Javascript + Query (查询)Jquery意思即指: 强大的DOM节点查询 2.官网:ht ...

  2. DEDE在图集列表中调出图集的所有图片[首页也适用]

    在include/common.func.php 中添加以下函数代码 代码如下:   // 在图集列表中调出图集的所有图片 function Getimgs($aid, $imgwith = 220, ...

  3. python爬虫知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  4. Vue.js的坑

    参考网址:http://cn.vuejs.org/v2/guide/components.html 1.camelCase vs. kebab-case HTML 特性不区分大小写.当使用非字符串模版 ...

  5. JavaScript获取当前url根目录(路径)

    jsp: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&q ...

  6. CCF系列之模板生成系统( 201509-3 )

    试题名称: 模板生成系统 试题编号: 201509-3 时间限制: 1.0s 内存限制: 256.0MB 问题描述 成成最近在搭建一个网站,其中一些页面的部分内容来自数据库中不同的数据记录,但是页面的 ...

  7. [知了堂学习笔记]_集合接口list与集合接口set的区别

    在Java中 除了 Map以外的集合的根接口都是Collection接口,而在Collection接口的子接口中,最重要的莫过于List和Set集合接口. 今天我们就来谈谈List集合接口与Set集合 ...

  8. List源码学习之ArrayList

    ArrayList 内部结构为一个可重复的对象数组(可存空对象). 内部有以下几个参数: ;/** * 用于空实例的共享空数组实例 */private static final Object[] EM ...

  9. SerialChart串口示波器的成功调试

    2018-01-1601:29:06 深夜更新一波串口示波器! http://t.cn/RQMA3uq 心得体会 总之将数据输出设置为","分割的形式即可 重点注意事项!!!! m ...

  10. 比较Maven和Ant

    从今天开始,整理maven一系列. Maven 它是什么? 如何回答这个问题要看你怎么看这个问题. 绝大部分Maven用户都称Maven是一个"构建工具":一个用来把源代码构建成可 ...