Shell 脚本概述
Shell的作用
![](https://img-blog.csdnimg.cn/direct/f6a2e95d8aa24fd292d4d47186dc0f4d.png)
编写第一个 简单的Shell 脚本
![](https://img-blog.csdnimg.cn/direct/28fe44c9f33a4dc7b3187624c1de96c1.png)
![](https://img-blog.csdnimg.cn/direct/589da925a5e94603978ca8f05f50bfef.png)
![](https://img-blog.csdnimg.cn/direct/868f6295ad9b4850950d2b89ed89915e.png)
注释:“./”、sh、bash是相同的执行方式,“.”和source是相同的source和“.”执行脚本时,将脚本中语句在本shell中执行,sh、bash和./是在执行脚本时先启动一个新的shell,然后让脚本中的语句在新的shell中执行,执行完后就退出。
![](https://img-blog.csdnimg.cn/direct/ca1f8b3d6cb04c5d9fc0a1a1fd2058d7.png)
uname -r >> kernel.txt \\追加并保存,不覆盖原有的数据
2:重定向输入
![](https://img-blog.csdnimg.cn/direct/5d1789433bf14c7f81e5c7c30458adfc.png)
passwd --stdin aaa <pass.txt \\selinux要设置为disabled 创建账号密码可以跳过交互界面
3.重定向错误
![](https://img-blog.csdnimg.cn/direct/ea9464bde2bf453ba85470a61a03697f.png)
管道操作
使用shell变量
三:使用shell变量
变量名不能用数字开头
变量名中不能有小数点
变量名不能用纯数字
变量名可以是字母开头再加数字,或下划线开头加字母或数字
变量名中不能有斜杠“/”、“$”、“#”、“@”等特殊符号
等号前后不能加空格
自定义变量
查看和引用变量的值
变量赋值的特殊操作
双引号
双引号可用于字符串的声明,双引号中的$符号或当做变量进行输出。连续的字符可以省略双号,字符串中有空格的话就不能省略,另外,声明的变量值中如果要引用另一个变量,也需要双引号。
单引号
单引号用于原样输出的变量声明,意思是变量的值中需要保留显示$符号
反撇号
反引号用于命令的引用,相当于$(),区别在于反引号不能嵌套,而$()可以嵌套
-qf:查找该文件属于哪一个已安装的软件包
-qc:列出该软件包生成的所有文件
read命令
设置变量的作用范围
数值变量的运算
\
特殊的shell变量
1:环境变量
set命令也可以显示环境变量,它显示的是系统中所有的环境变量,包括全局变量和局部变量env只显示全局变量
2:位置变量
预定义变量
预定义变量
$# 传送给命令Shell的参数个数
$- 在Shell启动或使用set命令时提供选项
$? 上一条命令执行后返回的值
$$ 当前shell的进程号
$! 上一个子进程的进程号
$@ 所有的参数,每个都用双括号括起
$* 所有参数,用双括号括起
$n 位置参数值,n表示位置
$0 当前shell名
备注:
$@:输出所有参数,把输出的参数当做一个个独立的单词,便于遍历所有的参数
$*:输出所有参数,把所有输出的参数当做一个整体。
这两个变量在输出时,视觉上是一样的,但存储方式不一样