if语句:

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 0 为正确退出码;

判断某个文件是否存在

#!/bin/bash
# 判断文件是否存在
if [ $# -lt 1 ]; thenecho "At least one argument." exit 1
fi
if [ -e $1 ];thenecho "存在"
elseecho "不存在"
if

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

#!/bin/bash
# 判断用户的默认shell程序类型declare -i sum=`grep "bin/bash$" /etc/passwd | wc -l`if grep "/bin/bash$" /etc/passwd &> /dev/null ; thenecho "存在 $sum 个用户,shell程序为/bin/bash"grep "/bin/bash$" /etc/passwd | cut -d: -f1exit 0
elseecho "没有这类用户"exit 1
fi

写出一个脚本程序,给定一个文件,比如:/etc/inittab a、判断这个文件中是否有空白行? b、如果有,则显示其空白行的行号,否则显示没有空白行
提示,空白行使用^[[:space:]]*$

#!/bin/bash
#B=`grep -n "^[[:space:]]*$" /etc/inittab | wc -l`
C=`grep -n "^[[:space:]]*$" /root/abc | cut -d: -f1`if [ $B -eq 0 ] ; thenecho "没有空白行"exit 1
elseecho "有空白行,空白行为 $C 行"exit 0
fi

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

#!/bin/bash
#
# input()
read -t 5 -p ("请输入一个文件:") filename // -t 等待时间
echo # 默认用来换行if [ -n $filename ];thenecho "eg. /etc/fstab"exit 8
fiif [ -f $filename ]; thenecho "$filename 是一个普通文件"exit 0
elif [ -d $filename ];thenecho "$filename 是一个目录文件"exit 0
elseecho "无法识别"exit 1
fi

for语句

for语句格式:
  for 变量 in 列表;do  
    循环体
  done

case语句

case分支格式
  case 变量 in
    PAT1)
      执行语句
      ;;
    PAT2)
      执行语句
      ;;
    *)
      默认执行语句
      ;;   

  esac

while 循环

格式:

  定义初始值
  while 条件判断 ; do
    循环体
    值变化语句
  done

break 跳出循环
continue 跳出本次循环
sleep 延长多长时间后,继续向下执行命令

until

循环 与 while 用法相同
区别:只有 判断条件为 False 的时候,才会进入循环语句;

1到100的偶数和

#!/bin/bash
# 偶数和
declare -i sum=0
for i in $(seq 0 2 100);dolet sum+=$i
done
echo “总数为:$sum”

转载于:https://www.cnblogs.com/Y139147/p/11412748.html

linux100day(day6)--shell脚本简单逻辑相关推荐

  1. 2021-04-09 linux的shell脚本简单教程

    linux 的基本操作(编写shell 脚本) 如果文章中的图片再次挂掉了,麻烦请去公众号内查看  终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本 ...

  2. shell 脚本简单入门

    好久不写shell脚本,有些生疏.总结下shell的语法,以便后续参考,快速捡起来. shell 脚本执行的3种方式: 1). ./xx.sh (xx.sh 需要有执行权限) 2). source x ...

  3. shell脚本简单切割字符串

    为什么80%的码农都做不了架构师?>>>    我们有这样一个字符串: info='abcd;efgh' 现在想获取abcd和efgh,我们可以简单地用cut工具来获取: fstr= ...

  4. linux100day(day5)--编程原理和shell脚本

    通过前面的学习,我们对于linux文件系统有了一定的了解,我们接下来会初步接触编程原理和尝试编写shell脚本来实现功能. day05--编程原理和shell脚本初步认识 编程原理 在早期编程中,因为 ...

  5. xshell脚本简单代码_十分钟学会写shell脚本

    大家好!我是handsomecui,下面我为大家讲解一下shell脚本的写法,讲的不好的地方,欢迎大家留言拍砖. 1.在linux下会写shell脚本是非常重要的,下面我参照例子给大家展示几个脚本,顺 ...

  6. Linux Shell脚本讲解

    目录 Shell脚本基础 Shell脚本组成 Shell脚本工作方式 编写简单的Shell脚本 Shell脚本参数 Shell脚本接收参数 Shell脚本判断用户参数 文件测试与逻辑测试语句 整数测试 ...

  7. Linux 定时执行shell 脚本

    2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...

  8. Shell脚本实现每个工作日定时执行指定程序

    我们可能会遇到这样的情景:必须在每个工作日定时执行Linux服务器上的某个程序.那么有没有办法实现这一功能呢?答案是肯定的.我们可以运用Shell脚本简单实现这一功能. 原理很简单,Shell脚本内部 ...

  9. shell脚本保姆级教程,附赠100个shell脚本案例!

    无论是系统运维,还是应用运维,均可分为"**纯手工"-> "脚本化"-> "自动化"->"智能化"** ...

最新文章

  1. 如何使用Nodejs爬虫看漫画
  2. c#导出包含图片的word文档
  3. python文件处理系列(二):Excel文件读取库xlwings
  4. 白话科普系列——最好用的浏览器 Chrome,你用了么?
  5. java 循环map 优雅写法_Java for循环Map集合优化实现解析
  6. 台式机也颤抖!ROG Strix S5AS性能强悍到底
  7. JQuery中使用Ajax赋值给全局变量失败异常的解决方法,jqueryajax
  8. 如何在JavaScript中使用apply(?),call(?)和bind(➰)方法
  9. dockerHub国内镜像设置
  10. NAS 百科 —— http://baike.baidu.com/item/NAS%E7%BD%91%E7%BB%9C%E5%AD%98%E5%82%A8
  11. ZMQ模式详解——发布/订阅模式
  12. CMU 15-213 Introduction to Computer Systems学习笔记(20) Concurrent Programming
  13. 怎么制作自己的数据集
  14. Cadence Orcad capture导出像Visio规格的图纸图文教程及视频演示
  15. Lattice diamond 编程时工具报出 ID错误问题的解决
  16. 东方快车谋杀案java_2015年第13本(英文第9本):Murder on the Orient Express 东方快车谋杀案...
  17. 【Watir Webdriver】自动化上传照片到百度相册
  18. IPhoneX全屏适配
  19. 关于Web的欢迎页面的开发设置
  20. 什么是经验--从程序员角度的思考

热门文章

  1. step 1 android-sdk-download
  2. SAP Spartacus 命名的由来
  3. dockerhub 拉取地址_DockerHub 镜像仓库的使用详解
  4. 模块降额设计_模块电源需要注意的四个点
  5. java掩码校验_Java 检查Ip掩码
  6. git 分支合并_批量删除GIT已合并到master的分支
  7. java array 元素的位置_java中的两种排序工具Arrays和Collections的使用
  8. external libraries里没有maven包_Maven企业实战系列(三):彻底看懂maven的体系结构...
  9. python csv模块追加列,使用Python在CSV上添加新列
  10. 全国大学生数学建模2019年C题机场的出租车问题论文与代码