目录
Shell简介
Shell是用C语言写的,是用户使用Linux的桥梁。Shell既是一种编程语言,又是一种程序设计语言。Shell是一种应用程序,这个应用程序提供一个界面,用户通过这个界面访问操作Linux内核服务。
echo "hello world" 输出
编写shell脚本:首先创建一个.sh的文件,vim编辑,执行:首先需要赋予该文件执行的权限,再用
./文件名.sh 或者 sh 文件名.sh 执行。
Shell变量
命名规则
变量使用
例如定义一个变量并输出:(注意:$和name中间不能加空格)echo $name 或者echo ${name}
&:取值符号
readonly url:只能读echo,不能修改=
单双引号的使用
字符串
是shell编程中最常用最有用的数据类型(除了数字、字符串,也没啥其他类型好用了),字符串可以用单引号也可以用双引号,也可以不用引号,单双引号的区别:括在双引号中的三种特殊字 符不被忽略:$,\,`,即双引号会解释字符串的特别意思,而单引号直接使用字符串。如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
单引号的限制
双引号可以有转义字符和变量(加-e输出转义字符)
字符串常用方法
拼接字符串
尽量使用双引号
提取子字符串
传递参数详解
特殊字符做参数
特殊字符说明:
数组定义及常用方法
概述
数组中可以存放多个值。Bash Shell 只支持一维数组,初始化时不需要定义数组大小。且数组元素的下标由0开始。
语法:array_name=(value1......valuen)
算数运算符使用
运算符说明
if[ $a ] 坑1:if中必须有空格,不能直接挨着
关系运算符使用
运算符说明
布尔运算符的使用
字符串运算符的说明
文件测试运算符的使用
作用:用于检测Linux文件的各种属性
关键字then(如果少写,则会报错else巴拉巴拉)
echo字符串输出详解
语法:
输出字符串:echo string
输出转义字符:echo "\"It is a test\" "(输出双引号)
显示换行:echo -e "OK! \n" # -e:开启转义
接收输入值并显示出来:vim .sh
boss为输入的值
echo的其他用法:
printf格式化输出
printf比echo更强大:能做格式化输出;
printf放在脚本.sh中(最后一定要有fi结束)才执行,echo可以直接在控制台输出
语法
printf format-string [arguments...]
format-string:为格式控制字符串;arguments:为参数列表
s:字符占位符;nf:表n位小数
printf转义序列详解
test检查条件是否成立
测试类型:(测试即检查)
数值测试
字符串测试
文件测试
同上(使用文件的语法加上test即可)
ifelse条件分支语句
if语法格式:
if else语法格式:else不能为空语句,必须有命令才能加else
也可以在一行显示,每一句由分号分隔即可
for循环详解
for语法格式:关键字(do:执行;done:结束)循环打印每个字符
for loop:与for有区别
while循环详解
语法:可以无限循环(for(;;;))(慎用,容易进入死循环!)
int为变量名
交互:
book是变量名,等待输入;ctrl+d退出
until循环详解
概述:(shell中的一种特殊的循环)
语法格式:
case语句详解
概述:shell case语句多为选择语句,可以用case语句匹配一个值与一个模式,若匹配成功,则执行相匹配的命令。
语法规则:
说明 * 代表了默认值(除了上述情况输出)
跳出循环语句
概念:shell使用break(直接退出)和continue(本次退出)来实现当条件不满足时跳出循环
函数
语法:
传入参数
上面这些够脚本使用了。