1、shell的概述
脚本:本质就是一个文件,文件里面存放的事 特定格式的指令, 系统可以使用脚本解析器 翻译或解析 指令 并执行(他不需要编译)
shell 应用层序 脚本语言(应用程序 解析 脚本语言)
shell命令解析器:
系统提供 shell命令解析器: sh ash bash
查看自己linux系统的默认解析:echo $SHELL
2、脚本的分类
系统自动调用:/etc/profile ~/.bashrc
/etc/profile
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,系统的公共环境变量在这里设置
开始自启动的程序,一般也在这里设置
~/.bashrc
用户自己的家目录中的.bashrc
登录时会自动调用,打开任意终端时也会自动调用
这个文件一般设置与个人用户有关的环境变量,如交叉编译器的路径等等
3、shell语法初始
1、定义以开头:#!/bin/bash
#!用来声明脚本由什么shell解释,否则使用默认shell
2、单个"#"号代表注释当前行
第一步:编写脚本文件
第二步:加上可执行权限
第三步:运行
三种执行方式的不同点(./xxx.sh bash xxx.sh . xxx.sh)
./xxx.sh :先按照 文件中#!指定的解析器解析 如果#!指定指定的解析器不存在 才会使用系统默认的解析器
bash xxx.sh:指明先用bash解析器解析 如果bash不存在 才会使用默认解析器
. xxx.sh 直接使用默认解析器解析
三种执行情况:(重要)
注意:windows下 写脚本 在linux下执行 注意
将windows文件 转换成 unix文件
方法一:dos2unix 如果没有该插件 需要安装
sudo apt-get install dos2unix
dos2unix shell脚本
转换成功就可以执行运行
方法二:
需要用vi打开脚本,在最后一行模式下执行
:set ff=unix
4、变量
定义变量
变量名=变量值
如:num=10
引用变量
$变量名
从键盘获取值read
注意事项:
1、变量名只能包含英文字母下划线,不能以数字开头
1_num=10 错误
num_1=20 正确
2、等号两边不能直接接空格符,若变量中本身就包含了空格,则整个字符串都要用双引号、或单引号括起来
3、双引号 单引号的区别
双引号:可以解析变量的值
单引号:不能解析变量的值
如果想在PATH变量中 追加一个路径写法如下:(重要!!!!)
export PATH=$PATH:/需要添加的路径
5、预设变量
脚本标量的特殊用法
6、变量的扩展
1、判断变量是否存在
2、字符串的操作
7、条件测试
test命令:用于测试字符串、文件状态和数字
test命令有两种格式:
test condition 或[ condition ]
使用方括号时,要注意在条件两边加上空格。
1、文件测试
2、字符串测试
3、数值测试
4、符合语句测试
8、控制语句
1、if控制语句
格式一:
if [条件1]; then
执行第一段程序
else
执行第二段程序
fi
格式二:
if [条件1]; then
执行第一段程序
elif [条件2];then
执行第二段程序
else
执行第三段程序
fi
2、case
3、for循环语句
9、函数
案例:函数分文件
fun.sh
24_sh.sh