ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2019-09-22 11:55:09  阅读:279  来源: 互联网

标签:语句 文件 shell etc 实干 进阶篇 操作符 测试 字符串


条件测试

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

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)

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

[root@localhost ~]# test ! -e /etc/ssc && touch /etc/ssc
(查看etc目录下是否有ssc文件,如果没有直接在目录下创建)
[root@localhost ~]# cd /etc
(验证:进入etc目录下)
[root@localhost 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、!:逻辑否

单分支结构
shell脚本编程——进阶篇(真刀实干)
双分支结构
shell脚本编程——进阶篇(真刀实干)
多分支结构
shell脚本编程——进阶篇(真刀实干)

IF语句示例

1.单分支if语句
(判断成绩,若<=50,则输出结果“数字太小”)
shell脚本编程——进阶篇(真刀实干)
2.双分支if语句
(判断成绩,若小于等于50,则输出结果“数字太小;若大于等于50,则输出结果“数字太大”)
shell脚本编程——进阶篇(真刀实干)
3、多分支语句
(判断分数高低,并分为优秀、及格与不及格三个层次)
shell脚本编程——进阶篇(真刀实干)

牛刀小试
自拟题目:(1)田径比赛成绩在10秒内的选手才能进入决赛,输入性别后,分别提示进入男子组还是女子组。使用多重判断,嵌套if实现。
shell脚本编程——进阶篇(真刀实干)
(2)编写脚本sumsquare.sh,用来计算两个整数的平方和并输出结果。
shell脚本编程——进阶篇(真刀实干)
shell脚本编程——进阶篇(真刀实干)

标签:语句,文件,shell,etc,实干,进阶篇,操作符,测试,字符串
来源: https://blog.51cto.com/14475593/2440062

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有