Centos7——17.SHELL 编程(2)

8. 运算符

8.1 基本介绍

学习如何在 shell 中进行各种运算操作。

8.2 基本语法

1) “$((运算式))”或“$[运算式]”
2) expr m + n
    注意 expr 运算符间要有空格
3) expr m - n
4) expr \*, /, %    乘,除,取余
  • 应用实例
    案例1:计算 (2+3)*4 的值
    1)$((运算式))

图11595603-20190902201139681-926242007.png

2)$[运算式]
图21595603-20190902200713345-154487662.png

3)expr
图31595603-20190902200709104-402801013.png

案例2:请求出命令行的两个参数[整数]的和
图41595603-20190902200705570-1076063603.png

9. 条件判断

9.1 基本语法

案例 1:"ok"是否等于"ok"
判断语句:

[ condition ](注意 condition 前后要有空格)
#非空返回 true,可使用$?验证(0 为 true,>1 为 false)

9.2 应用实例

[ atguigu ]
[]
返回 true
返回 false
[condition] && echo OK || echo notok
条件满足,执行后面的语句

9.3 常用判断条件

1)两个整数的比较
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于

2) 按照文件权限进行判断
-r 有读的权限 [ -r 文件 ]
-w 有写的权限
-x 有执行的权限


3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并是一个目录

9.4 应用实例

案例 1:"ok"是否等于"ok"
判断语句:
图51595603-20190902200656985-1007884850.png

案例 2:23 是否大于等于 22
判断语句:
图61595603-20190902200653384-356737140.png

案例 3:/root/install.log 目录中的文件是否存在
判断语句:
图71595603-20190902200649023-1416533312.png

10. 流程控制

10.1 if判断

  • 基本语法
if [ 条件判断式 ];then
    程序
fi

或者
if [ 条件判断式 ]
then
        程序
elif [条件判断式]
then
        程序
fi

注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格 (2) 推荐使用第二种方式

  • 应用实例
    案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 "及格了",如果小于 60,
    则输出 "不及格"
    图81595603-20190902200641530-2134268443.png

10.2 case 语句

  • 基本语法
case $变量名 in
    "值 1")
        如果变量的值等于值 1,则执行程序 1
        ;;
    "值 2")
        如果变量的值等于值 2,则执行程序 2
        ;;
    ...省略其他分支...
    *)
        如果变量的值都不是以上的值,则执行此程序
        ;;
esac
  • 应用实例
    案例 1 :当命令行参数是 1 时,输出 "周一", 是 2 时,就输出"周二", 其它情况输出
    "other"
    图91595603-20190902200634918-335065450.png

10.3 for 循环

  • 基本语法 1
for 变量 in 值 1 值 2 值 3...
    do
        程序
    done
  • 应用实例
    案例 1 :打印命令行输入的参数 【会使用到$* $@】
    图101595603-20190902200630707-458677657.png

  • 基本语法 2
for (( 初始值;循环控制条件;变量变化 ))
    do
        程序
    done
  • 应用实例
    案例 1 :从 1 加到 100 的值输出显示
    图111595603-20190902200624436-609773343.png

10.4 while 循环

  • 基本语法
while [ 条件判断式 ]
    do
        程序
    done
  • 应用实例
    案例 1 :从命令行输入一个数 n,统计从 1+..+ n 的值是多少?
    图121595603-20190902200620496-429553717.png

11. read 读取控制台输入

11.1 基本语法

read(选项)(参数)
选项:

-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。。
参数
变量:指定读取值的变量名

11.2 应用实例

案例 1:读取控制台输入一个 num 值
案例 2:读取控制台输入一个 num 值,在 10 秒内输入。
图131595603-20190902200614237-1797637559.png

12. 函数

12.1 函数介绍

shell 编程和其它编程语言一样,有系统函数,也可以自定义函数。系统函数中,我们这里就介绍两个。

12.2 系统函数

  • basename 基本语法
    功能:返回完整路径最后 / 的部分,常用于获取文件名
    basename [pathname] [suffix]
basename [string] [suffix]
(功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’)
字符,然后将字符串显示出来。

选项:
suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的 suffix 去掉。
  • dirname 基本语法
功能:返回完整路径最后 / 的前面的部分,常用于返回路径部分
dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的
部分),然后返回剩下的路径(目录的部分))

12.3 应用实例

案例 1:请返回 /home/aaa/test.txt 的 "test.txt" 部分
图141595603-20190902200606389-50901505.png

12.4 自定义函数

  • 基本语法
[ function ] funname[()]
{
    Action;
    [return int;]
}

调用直接写函数名:funname [值]

•应用实例
案例 1:计算输入两个参数的和(read), getSum
图151595603-20190902200540037-668901168.png

转载于:https://www.cnblogs.com/zwxo1/p/11447010.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值