Linux Shell编程

目录

Shell简介

Shell变量

命名规则

变量使用

 单双引号的使用

字符串

单引号的限制

 字符串常用方法

 拼接字符串

提取子字符串

 传递参数详解

 特殊字符做参数

数组定义及常用方法

概述

算数运算符使用

运算符说明

关系运算符使用

运算符说明

 布尔运算符的使用

 字符串运算符的说明

 文件测试运算符的使用

 echo字符串输出详解

 printf格式化输出

语法

printf转义序列详解 

 test检查条件是否成立

ifelse条件分支语句

for循环详解

while循环详解

 until循环详解

case语句详解

 跳出循环语句

 函数


Shell简介

Shell是用C语言写的,是用户使用Linux的桥梁。Shell既是一种编程语言,又是一种程序设计语言。Shell是一种应用程序,这个应用程序提供一个界面,用户通过这个界面访问操作Linux内核服务

Linux Shell编程_第1张图片Linux Shell编程_第2张图片

 echo "hello world" 输出

编写shell脚本:首先创建一个.sh的文件,vim编辑,执行:首先需要赋予该文件执行的权限,再用

./文件名.sh 或者 sh 文件名.sh 执行。

Shell变量

命名规则

Linux Shell编程_第3张图片

变量使用

例如定义一个变量并输出:(注意:$和name中间不能加空格)echo $name echo ${name} 

Linux Shell编程_第4张图片  &:取值符号

 readonly url:只能读echo,不能修改=Linux Shell编程_第5张图片

 单双引号的使用

字符串

是shell编程中最常用最有用的数据类型(除了数字、字符串,也没啥其他类型好用了),字符串可以用单引号也可以用双引号,也可以不用引号,单双引号的区别:括在双引号中的三种特殊字 符不被忽略:$,\,`,即双引号会解释字符串的特别意思,而单引号直接使用字符串。如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。

单引号的限制

Linux Shell编程_第6张图片

Linux Shell编程_第7张图片

 双引号可以有转义字符和变量(加-e输出转义字符)

Linux Shell编程_第8张图片

 字符串常用方法

 拼接字符串

Linux Shell编程_第9张图片尽量使用双引号

提取子字符串

Linux Shell编程_第10张图片

 传递参数详解

Linux Shell编程_第11张图片

 Linux Shell编程_第12张图片

 特殊字符做参数

 特殊字符说明:Linux Shell编程_第13张图片

数组定义及常用方法

概述

数组中可以存放多个值。Bash Shell 只支持一维数组,初始化时不需要定义数组大小。且数组元素的下标由0开始

语法:array_name=(value1......valuen)

Linux Shell编程_第14张图片

算数运算符使用

运算符说明

Linux Shell编程_第15张图片

 Linux Shell编程_第16张图片

Linux Shell编程_第17张图片 Linux Shell编程_第18张图片

 if[ $a ] 坑1:if中必须有空格,不能直接挨着

关系运算符使用

运算符说明

Linux Shell编程_第19张图片

Linux Shell编程_第20张图片 

 布尔运算符的使用

Linux Shell编程_第21张图片

 字符串运算符的说明

Linux Shell编程_第22张图片

 文件测试运算符的使用

 作用:用于检测Linux文件的各种属性

Linux Shell编程_第23张图片

关键字then(如果少写,则会报错else巴拉巴拉) 

Linux Shell编程_第24张图片Linux Shell编程_第25张图片

 echo字符串输出详解

 语法:

输出字符串:echo string

输出转义字符:echo "\"It is a test\" "(输出双引号)

显示换行:echo -e "OK! \n"     # -e:开启转义

接收输入值并显示出来:vim .sh

boss为输入的值

 echo的其他用法:

Linux Shell编程_第26张图片

 printf格式化输出

 printf比echo更强大:能做格式化输出;

printf放在脚本.sh中(最后一定要有fi结束)才执行,echo可以直接在控制台输出

语法

printf format-string [arguments...]

format-string:为格式控制字符串;arguments:为参数列表

Linux Shell编程_第27张图片Linux Shell编程_第28张图片

s:字符占位符;nf:表n位小数

printf转义序列详解 

Linux Shell编程_第29张图片

 test检查条件是否成立

测试类型:(测试即检查)

数值测试

Linux Shell编程_第30张图片

字符串测试

Linux Shell编程_第31张图片 

文件测试

同上(使用文件的语法加上test即可)

ifelse条件分支语句

if语法格式:

Linux Shell编程_第32张图片

if else语法格式:else不能为空语句,必须有命令才能加else

Linux Shell编程_第33张图片Linux Shell编程_第34张图片

也可以在一行显示,每一句由分号分隔即可

for循环详解

for语法格式:关键字(do:执行;done:结束)循环打印每个字符

Linux Shell编程_第35张图片Linux Shell编程_第36张图片

 

 Linux Shell编程_第37张图片

for loop:与for有区别

 Linux Shell编程_第38张图片

while循环详解

语法:可以无限循环(for(;;;))(慎用,容易进入死循环!)

 Linux Shell编程_第39张图片Linux Shell编程_第40张图片int为变量名Linux Shell编程_第41张图片

交互:

 Linux Shell编程_第42张图片book是变量名,等待输入;ctrl+d退出

 until循环详解

概述:(shell中的一种特殊的循环)

Linux Shell编程_第43张图片

语法格式:

Linux Shell编程_第44张图片Linux Shell编程_第45张图片Linux Shell编程_第46张图片

case语句详解

 概述:shell case语句多为选择语句,可以用case语句匹配一个值与一个模式,若匹配成功,则执行相匹配的命令。

语法规则:

Linux Shell编程_第47张图片Linux Shell编程_第48张图片Linux Shell编程_第49张图片说明 * 代表了默认值(除了上述情况输出)

 跳出循环语句

 概念:shell使用break(直接退出)和continue(本次退出)来实现当条件不满足时跳出循环

Linux Shell编程_第50张图片Linux Shell编程_第51张图片

 Linux Shell编程_第52张图片

 Linux Shell编程_第53张图片Linux Shell编程_第54张图片

 函数

 语法:

Linux Shell编程_第55张图片Linux Shell编程_第56张图片Linux Shell编程_第57张图片

 传入参数

Linux Shell编程_第58张图片Linux Shell编程_第59张图片

 上面这些够脚本使用了。

你可能感兴趣的:(Linux操作系统基本实验,linux,bash,运维)