文章目录
一、Shell简单介绍
shell是最通用的脚本语言,是用户和LINUX内核做数据交互的接口
bash shell是目前主流的shell工具
一个系统中可以存在多个shell 再Linux系统中我们可以使用以下命令查看
cat /etc/shells
二、Shell脚本的编写
1、创建、声明、运行
1、创建shell文件
touch hello.sh #创建名为hello的shell脚本
#.sh后缀名在linux里本身是没有意义的,但它可以起到提示程序员的作用
2、编写文件声明
在编写hello.sh文件时,第一句需要编写当前使用shell版本的声明,类似于C语言脚本的include<stdio.h>
#!/bin/bash 声明当前使用的shell的版本
3、运行shell脚本
sh hello.sh
hello.sh中的内容
运行后的结果
2、变量
shell中的变量一般分为两种
系统变量
系统变量:或称为全局变量,即系统所提供的变量 如($home $pwd 等),可以通过set命令打印显示所有的系统变量
系统变量在脚本中引用时需要大写
自定义变量
即用户根据自己的需要自行定义的变量
定义和使用方式如下
name="csdn"
echo $name
在定义变量时,应注意单引号和双引号的区别
单引号会使所有引号内的符号失去特殊作用,包括$,而双引号不会
如下进行说明
正常定义时
输出结果如下:
使用单引号时
变量权限
撤销变量
在shell中可以将自定义的变量进行撤销,被撤销的变量后续就无法再继续使用了
撤销命令如下:
unset name
可以看到,运行脚本后$name的值将不被显示
只读变量
可以定义变量为只读变量,只读变量不允许被撤销
定义命令如下:
readonly name="csdn"
如果执行撤销命令,将会进行报错显示
变量内容
shell脚本中的变量除了可以存储字符串、数值型数据外,还可以存储指令的运算值
如下所示
3、转义字符
当我们想要打印出C:\users\test; 时,需要使用""对其进行转义
即在hello.sh文件中应该如下编写
输出结果如下
4、运算
方式1:使用第三个变量存储
方式2:
5、循环
for循环
循环结构定义如下
# n为循环变量,1 2 3为n可以获得的值
for n in 1 2 3
do
echo $n #循环体
done
运行结果如下
for循环也可以定义为如下结构
for((i=0;i<=5;i++))
do
echo $i
done
while循环
运行结果
6、case语句
类似于C语言的switch语句
使用变量A中的值去匹配每个case,*是通配符
输出如下
7、条件语句
if 条件
then
语句
elif 条件
then
语句
else
语句
fi
注意:
方括号后必须要有空格
运行结果如下
注意:if中有一些常用的运算符
- = 用来做字符串比较
- -lt 数值的小于比较
- -le 数值的小于等于
- -eq 数值的相等
- -gt 数值的大于
- -ge 数值的大于等于
- -ne 数值的不等于
- ! 布尔运算非
- -a 布尔运算与
- -o 布尔运算或
举个大于的例子说明一下:
输出为
8、函数
定义如下:
运行如下
9、输入
read 可以从键盘获取一个输入,存储在本地变量,类似于C语言的scanf
运行结果
上述命令等价于
char name[20];
printf("输些东西");
scanf("%s",&name);
printf("%s",name);
10、输出
printf输出,类似于C语言的printf使用方式
没有双引号也可以