一、if条件语句的使用格式:

1、单分支语句

if [ 条件 ];then
  执行语句
fi

注意:[ 条件 ] :条件与中括号要用空格分割;下面的语句同理。

2、双分支语句

if [ 条件 ];then
  执行语句1
else
  执行语句2
fi

3、多分支语句

if [ 条件 ];then
  执行语句1
elif;then
  执行语句2
elif;then
  执行语句3
else
  执行语句4
fi

退出码: exit

  在某些条件判断下,如果不满足该条件,我们必须手动退出程序,否则后面的代码无法执行;

  代码正确执行完成后,指定 exit 0 为正确退出码;

  代码执行错误时,指定 exit 0-255 之间任意一个数值表示错误退出。

练习:

1、给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”

#!/bin/bash
#
read -t -p ("请输入一个文件:") filename # -t 等待时间5秒不输入自动退出
if [ -n $filename ];then
echo # 默认用来换行
echo "eg. /etc/fstab"
exit
fi if [ -f $filename ]; then
echo "$filename 是一个普通文件"
exit
elif [ -d $filename ];then
echo "$filename 是一个目录文件"
exit
else
echo "无法识别"
exit
fi

2、判断当前系统上是否有用户的默认shell程序是否为bash程序,如果有,就显示有多少个这类用户,否则就显示没有这类用户;【并且显示出那些用户是bash】

#!/bin/bash
# 判断用户的默认shell程序类型 declare -i sum=`grep "bin/bash$" /etc/passwd | wc -l` #定义一个数值型变量sum if grep "/bin/bash$" /etc/passwd &> /dev/null ; then
  echo "存在 $sum 个用户,shell程序为/bin/bash"
  grep "/bin/bash$" /etc/passwd | cut -d: -f1
  exit
else
  echo "没有这类用户"
  exit
fi

3、判断某个文件是否存在

#!/bin/bash
# 判断文件是否存在
if [ $# -lt ]; then
  echo "至少需要输入一个传参."
  exit
fi if [ -e $ ];then
  echo "存在"
else
  echo "不存在"
fi

二、case语句

1、case语句语法格式:

case 变量 in
PATTEN1) # PATTERN支持文件统配符
代码块1
;;
PATTEN2)
代码块2
;;
*)
默认执行语句
;;
esac

2、练习

read -p 'Input a number:' Num
case $Num in
   )  echo 'You select 1'
  ;;
   )  echo 'You select 2'
  ;;
   )  echo 'You select 3'
  ;;
   |)  echo 'You select 4 or 5'
  ;;
  *)  echo 'default'
  ;;
esac

Linux--shel的if判断语句--05的更多相关文章

  1. linux实操_shell判断语句

    常用判断条件: (1)两个数的比较 = 字符串的比较 -lt 小于 -le 小于等于 -eq 等于 -gt 大于 -ge 大于等于 -ne 不等于 (2)按照文件权限进行判断 -r 有读的权限 -w ...

  2. linux条件测试操作(test)和if判断语句,while循环语句,break控制语句和for循环和case多分枝语句和select语句

    条件测试操作 条件测试是专为影响"$?"的操作,是条件转移.循环语句的基础   test测试命令: test 用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0, ...

  3. linux shell中的条件判断语句

    http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...

  4. shell编程基础(3)条件判断语句

    1,带参数的shellscript #this is program build 5.11 to test shell script ############ cxz ####### 5.11 ### ...

  5. python笔记:#009#判断语句

    判断(if)语句 目标 开发中的应用场景 if 语句体验 if 语句进阶 综合应用 01. 开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?-- 程序 ...

  6. 一文了解Python中的判断语句

    判断(if)语句 目标 开发中的应用场景 if 语句体验 if 语句进阶 综合应用 01. 开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?…… 程序 ...

  7. puppet(3) 变量、数据类型、表达式、条件判断语句-if、case、selector、unless

    puppet(4) 变量.数据类型.表达式.条件判断语句-if.case.selector语句 puppet变量: 1.名称必须以$开头:赋值使用=,支持追加赋值+=: 2.每个变量都有两种引用格式: ...

  8. python中的if判断语句

    判断(if)语句 目标 开发中的应用场景 if 语句体验 if 语句进阶 综合应用 01. 开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?……  ...

  9. C#开发Unity游戏教程之判断语句

    C#开发Unity游戏教程之判断语句 游戏执行路径的选择——判断 玩家在游戏时,无时无刻不在通过判断做出选择.例如,正是因为玩家做出的选择不同,才导致游戏朝着不同的剧情发展,因此一个玩家可以对一个游戏 ...

随机推荐

  1. Docker学习第一天

    1.Docker包含三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) Docker镜像就是一个只读的模板,镜像可以用来创建Docker容器.Docker提供了 ...

  2. Java面试题汇总---基础版(附答案)

    基于我个人对面试的认知和招聘经验,在此我总结一下Java开发者的基础知识掌握要求,及应聘者面试的需要准备的内容. 首先,Java基础是每个面试官都会问到的,可能只是针对工作经验的多少,对问题追踪深度有 ...

  3. BI之路学习笔记3--olap cube理解实例

    为什么会产生OLAP? 随着数据库技术的发展应用,数据库存储的数据量从M字节以及G(千兆)字节过渡到T字节和P字节,同时,用户的查询需求也越来越复杂,设计的已不仅是查询或者操纵一张关系表中的一条或几条 ...

  4. TCP协议传输大文件读取时候的问题

    TCP协议传输大文件读取时候的问题 大文件传不完的bug 我们在定义的时候定义服务端每次文件读取大小为10240, 客户端每次接受大小为10240 我们想当然的认为客户端每次读取大小就是10240而把 ...

  5. Hive的架构原理&Hive的安装步骤

    Hive架构图 元数据默认数据库是:Derby.开发使用MySQL Hive如何将SQL语句翻译成MapReduce的? 1.使用SQL解析器解析SQL语句 2.使用编译器进行编译逻辑 3.使用优化器 ...

  6. [小米OJ] 6. 交叉队列

    思路: 大概思想如下: 1. 动态规划求解,构造dp[][] 二维数组: 2. 设dp[i][j], i 为 第一个字符串的第i个字母:j 为 第二个字符串的第j个字母  3. dp[i][j] 如果 ...

  7. fjnu2016-2017 低程 PROBLEM C 汪老司机

    动态规划 方程 #include <iostream>#include <iomanip>#include <cmath>#include <algorith ...

  8. java练习---10

    package cn.zrjh; public class L { public int id; public String name; public int age; public String c ...

  9. Deque 和Queue

    概述 接口,一个线性结合,支持在集合首尾add , remove , deque 是double  ended queue 的缩写,意味双端队列,接口提供的方法有两种类型,如果失败,一种抛出异常,一种 ...

  10. 从windows平台转战ubuntu

    说到ubuntu,可能很多人会有些陌生,但对于有些人很熟悉.ubuntu是linux里面最为流行的一版,以下来自百度百科.       Ubuntu(乌班图)是基于Debian GNU/Linux,支 ...