5.1 shell 脚本基础
5.1.1 shell脚本起步
1.什么式shell脚本?
1)类似用shell功能命令写成的一个“程序”;
2)类似Windows下的批处理程序(.bat程序)
2.shell 脚本的特点
适合对服务器进行管理
3.shell脚本的运行
四种运行方式的异同:
sh 文件名 ,bash 文件名 , ./文件名 : 创建子进程运行,运行完程序中的变量失效
source 文件名 :创建父进程运行,运行完程序中的变量还有效
注:./ 的运行方式需要赋予权限,需要root或者直接chmod赋予用户执行权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MuvU9OcX-1635898182908)(C:\Users\二月\AppData\Roaming\Typora\typora-user-images\image-20210529110229797.png)]
4.shell 变量
1)本地变量:
相当于局部变量,也称为用户自定义变量,是在当前的进程,当前的shell环境中有效的变量。
设置:变量名 = 变量值
例子:a=hello
若两边有空格,变量值必须用括号括起来, a=“hello world”
变量名开头不能是数字,可以是下划线,字母。
2)环境变量
相当于全局变量,也称为系统变量。它与本地变量的区别在于可以用于所有的用户进程。
环境变量的设置格式: export 变量名=变量值
命令行输入env ,可以查看当前系统中定义的环境变量。
几个常见的环境变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d4W3JkKN-1635898182910)(C:\Users\二月\AppData\Roaming\Typora\typora-user-images\image-20210529125557605.png)]
3)预定义变量
相当于C语言中的主函数变量,执行脚本程序的时候就被设定且不再改变。
所有的预定义变量都是由$符号和另外一个符号组成:
特殊变量名 | 说明 |
---|---|
$# | 存储shell命令行参数的个数 |
$? | 存储shell中上一个程序的执行返回值(0表示命令执行成功,非0有问题) |
$1~n | 存储第1~n个命令行参数 |
$0 | 存储程序自己的名称 |
$* | 存储shell脚本的所有参数 |
$$ | 存储shell脚本的进程号 |
4)变量的读入
read 选项 变量名
选项:-p 后面可以接提示信息 , -t 后面接等待的秒数,防止用户一直等待
read -p "please input your name" -t 30 named