shell脚本编程——进阶篇(真刀实干)

条件测试

  • 文件测试
  • 整数测试
  • 字符串与逻辑测试

if语句

  • if单分支语句
  • if双分支语句
  • if多分支语句
  • if嵌套语句

test命令
测试特定的表达式 是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值。

格式1:test 条件表达式
格式2:[   条件表达式   ]   (注意前后至少有1个空格,否则不予执行)

文件测试
格式:[ 操作符 文件或目录 ]
常用的测试操作符:
1、-d:测试是否为目录(Directory)
2、-e:测试目录或文件是否存在(Exist)
3、-f:测试是否为文件(File)
4、-r:测试当前用户是否有权限读取(Read)
5、-w:测试当前用户是否有权限写入(Write)
6、-x:测试当前用户是否有权限执行(eXcute)
举例说明

方法一:test -d /etc/sysconfig(测试etc目录下是否有sysconfig这个文件或者目录存在)
echo $?(进行条件判断,如果由此文件输出结果为0值)
方法二:[ -d /etc/sysconfig ]
echo $?(进行条件判断,如果无此文件输出结果为非0值,就是1)

整数值比较
格式:[ 整数1 操作符 整数2 ]
常用的测试操作符

  • -eq:等于(Equal)
  • -ne:不等于(Not Equal)
  • -gt:大于(Greater Than)
  • -lt:小于(Lesser Than)
  • -le:小于或等于(Lesser or Equal)
  • -ge:大于或等于(Greater or Equal)

牛刀小试
目的:查看目录下是否有我们需要的文件,若没有则直接创建。

[[email protected] ~]# test ! -e /etc/ssc && touch /etc/ssc
(查看etc目录下是否有ssc文件,如果没有直接在目录下创建)
[[email protected] ~]# cd /etc
(验证:进入etc目录下)
[[email protected] etc]# ls
(查看详细信息,此时可以找到我们创建的sscw文件)

字符串比较

格式1:[ 字符串1 = 字符串2 ]
? [ 字符串1 ! = 字符串2 ]
格式2:[ -z 字符串]
常用的测试操作符
1、=:字符串内容相同
2、!=:字符串内容不同,!表示相反的意思
3、-z:字符串内容为空

逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...
常用的测试操作符
1、-a或&&:逻辑与,“而且”的意思
2、-o或||:逻辑或,“或者”的意思
3、!:逻辑否

单分支结构

双分支结构

多分支结构

IF语句示例

1.单分支if语句
(判断成绩,若<=50,则输出结果“数字太小”)

2.双分支if语句
(判断成绩,若小于等于50,则输出结果“数字太小;若大于等于50,则输出结果“数字太大”)

3、多分支语句
(判断分数高低,并分为优秀、及格与不及格三个层次)

牛刀小试

自拟题目:

(1)田径比赛成绩在10秒内的选手才能进入决赛,输入性别后,分别提示进入男子组还是女子组。使用多重判断,嵌套if实现。

(2)编写脚本sumsquare.sh,用来计算两个整数的平方和并输出结果。

第一种方法(引用位置变量)


第二种方法(识别键盘输入数据,实现交互过程)


可见,准确的实现一个功能,有着多种不同的编写代码方式。我们需发散思维,争取在准确实现功能的同时能想出多种不同的编程方式,防止思维出现局限性。

原文地址:https://blog.51cto.com/14475593/2440062

时间: 2024-08-28 06:11:29

shell脚本编程——进阶篇(真刀实干)的相关文章

bash脚本编程进阶篇

bash脚本编程进阶篇   函数.数组.字符串操作 一.函数:脚本编程中的函数与我们数学中的函数有着根本区别.这里的函数主要是为了实现过程式编程代码重用的作用.比如一个用于计算数字的函数,当我们需要使用计算数字的时候,直接调用这个函数过来而不必每一次计算数字都要自己重新写一次.因此,函数的主要功能可以概括为:便于实现模块化编程:便于代码的重用:使程序简洁.我们定义函数,可以分两种两种结构. 第一种函数结构,用function声明一个函数,后跟函数名.函数体用花括号括起来.第二种结构是用函数名跟小

8.15_Linux之bash shell脚本编程入门篇(二)以及文件查找和压缩的使用

bash shell脚本编程入门篇(二) read命令的使用 作用: 使用read来把输入值分配给一个或多个shell变量: -p指定要显示的提示 -t TIMEOUT read从标准输入中读取值,给每个单词分配一个变量,所有剩余单词都被分配给最后一个变量 EX.read -p "Enter a filename:" FILE 条件选择之if的使用 if的作用:选择执行(注意:if语句可嵌套) 单分支 if 判断条件;then 条件为真的分支代码 fi EX.单分支案例 双分支 if

shell脚本编程高级篇

SHELL脚本编程进阶循环执行:简单来说就是把一些指令重复循环. 循环代码具体的指令有三种: for , while , until其中for, while用的最多.for循环 for 变量名 in 列表;do 循环体 done 关键字的帮助都是用help来查询.for循环语法:在shell编程中 for,in,do,done.这些都是他的关键字,其中循环的指零就放在do和done之间.WORDS决定了循环次数.循环的次数由in 后面跟的WORDS(字符串)的数量决定.字符串的个数决定了do和d

shell脚本编程进阶练习题

这两天学习了shell脚本编程进阶,作为一枚文科生,小编觉得...恩..脚本很烧脑.....,不过小编还是做了些题,稍作总结后,呈给各位看官,内容如下: 一.条件选择if语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; t

SHELL脚本编程进阶(二)

写在前面(最重要) 本文部分资料和示例援引自以下书籍.在此,感谢原作者的创作,以及所有译者的付出,向他们致敬. Advanced Bash-Scripting Guide <高级Bash脚本编程指南>Revision 10中文版 Linux脚本编程执导 其中 <高级Bash脚本编程指南>Revision 10中文版 是 <Advanced Bash-Scripting Guide> 的中文翻译版,文档翻译正在进行中,再次感谢译者付出. 前言 在之前的文章 Linux 基

8.17_Linux之bash shell脚本编程入门篇(三)之循环以及函数function的使用

bash shell脚本编程入门篇(三)之循环 什么是循环执行? 将某代码段重复运行多次 重复运行多少次: 循环次数事先已知 循环次数事先未知 有进入条件和退出条件 相关命令:for, while, until,selet, for命令的使用 作用: 依次将列表中的元素赋值给"变量名"; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 命令格式: for 变量名 in 列表; do 循环体(正常执行的执行命令) 语句1 语句2 语句3 ... done 列表生成方式: (

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

8.11_Linux之bash shell脚本编程入门篇(一)

什么是bash shell脚本编程? 答:Linux里面有多种shell,而CentOS和redhat的默认shell是bash shell.至于shell脚本,这个跟windows操作系统里面的批处理文件有点像(.bat的文件).不知道大家还是否记得Linux的哲学思想吗?其中有那么两点点:由众多目的的单一应用程序组成:一个程序只做一件事,且做好:组合目的的单一的小程序完成复杂的任务.我觉得shell脚本编程就很好的体现了这个哲学思想.shell脚本利用shell的功能缩写的一个"程序&quo

关于shell脚本编程第一篇

shell脚本编程(1)脚本的基本格式:              程序:指令+数据程序编程风格分为两种:                    过程式:以指令为中心,数据服务于指令                    对象式:以数据为中心,指令服务于数据过程式编程有以下几个特点:                        顺序执行                        循环执行                        选择执行shell编程:          过程式.解释