Linux下的Shell基础——流程控制(三)

简介: Linux下的Shell基础——流程控制(三)

一、if 判断

(1)基本语法

       1)单分支

        2)多分支

注意事项:

       ①[ 条件判断式 ],中括号和条件判断式之间必须有空格

       ②if 后要有空格

(2)案例实操

输入一个数字,如果是 1,则输出 haha,如果是 2,则输出 hehe, 如果是其它,则输出wuwu

=

二、case语句

(1)基本语法

注意事项:

       (1)case 行尾必须为单词in,每一个模式匹配必须以右括号“)”结束。

       (2)双分号;;表示命令序列结束,相当于 java 中的 break。

       (3)最后的*)表示默认模式,相当于 java 中的 defaut

(2)案例实操

输入一个数字,如果是 1,则输出 haha,如果是 2,则输出 hehe,如果是其它,输出 wuwu

三、for循环

(1)基本语法 1

for (( 初始值;循环控制条件;变量变化 ))

do

        程序

done

(2)案例实操

       从 1 加到 10

(3)基本语法 2

for 变量 in 值 1 值 2 值 3…

do

       程序

done

(4)案例实操

(1)打印所有输入参数

(2)比较∗和*和@区别

∗和*和@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以11 2 …$n 的形式输出所有参数。

四、while循环

(1)基本语法

       while [ 条件判断式 ]

        do

                程序

        done

(2)案例实操

       从 1 加到 100

五、read 读取控制台输入

(1)基本语法

       read (选项) (参数)

       ①选项:

               -p:指定读取值时的提示符;

               -t:指定读取值时等待的时间(秒)如果-t 不加表示一直等待

       ②参数变量:指定读取值的变量名

(2)案例实操

       提示 7 秒内,读取控制台输入的名称

六、函数

(1)系统函数

       basename

       (1)基本语法

                basename [string / pathname] [suffix] (功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。

              basename 可以理解为取路径里的文件名称

               选项:

               suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的suffix 去掉。

      (2)案例实操

       截取该~/shell/read_test.sh 路径的文件名称。

       

       dirname

       (1)基本语法

               dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名 (非目录的部分),然后返回剩下的路径(目录的部分))

               dirname 可以理解为取文件路径的绝对路径名称

       (2)案例实操

       获取 ~/shell/read_test.sh 文件的路

(2)自定义函数

       (1)基本语法

               [ function ] funname[()]

               {

                        Action; [return int;]

               }

      (2)经验技巧

               1)必须在调用函数地方之前,先声明函数,shell 脚本是逐行运行。不会像其它语言一 样先编译。

               2)函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将 以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255)

       (3)案例实操

       计算两个输入参数的和。


目录
相关文章
|
19天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
18天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
20天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
27 2
|
26天前
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
19 0
|
1月前
|
存储 算法 Shell
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互(二)
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互
53 0
|
1月前
|
Shell Linux 开发工具
shell的介绍以及Linux权限的讲解
shell的介绍以及Linux权限的讲解
31 2
|
1月前
|
网络协议 Shell Linux
【Shell 命令集合 系统管理 】Linux 查询域名的注册信息 whois命令 使用指南
【Shell 命令集合 系统管理 】Linux 查询域名的注册信息 whois命令 使用指南
49 1
|
Shell 开发工具
shell编程之流程控制判断
一、shell判断-if 1.if判断基本概述 1.什么是if? If就是模仿人类的判断来进行的,但他没有人类那么有情感,只有True和false这两种结果。 2.为什么要使用if 当我们在写程序的时候,是否经常需要对上一步执行结果进行判断。那么判断就需要用if语句来实现。 3.if的基础语法 1.单分支语法 if [ $1 -eq $2];then echo “ok” fi 2.双分支结构 if [ $1 -eq $2 ];then echo “ok” else echo “error” fi 3.多分支结构###如果上面的匹配成功就不会继续向下匹配 if [ 如果你有房 ];then
143 0
|
6天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
33 3
|
1天前
|
弹性计算 运维 Shell
每天解析一个shell脚本(61)
【4月更文挑战第26天】shell脚本解析及训练(61)
14 3