Shell基础
1、 脚本命名
*.sh
2、 命名变量
1)自定义变量:
name=zhangsan
2)#env
大写字母
3)$
#echo $name
#echo $PATH
4)作用域
默认自定义变量—局部
通过调用多个shell进程
打开shell---父
再次打开shell---子
Shell----------子
#env
SHLVL==shell level
#export
5){}
#Name=zhansan
#echo {$name}isastudent
6) > >> 输出
< << 输入
〈〈:制定终止的符号
#cat < &0 表示接受来自键盘的输入
#cat < file 表示接受来自文件的输入
at <file -m
系统在接受输入输出内容存在方向
输入输出描述符:
输入:键盘 0
输出:屏幕 1
错误输出:分离 2
临时符号---起过渡作用3-9
/dev/null----虚拟出来的一个设备(黑洞)
LS 3<&2 3>file ????
7)read ---从键盘读取变量的值
注意当变量的数量和值得数量不一致的情况
#read 变量名
8)常见参数
$?-----表示显示最近一条命令的执行状态
状态分类:
退出状态0:表示成功
退出状态1:表示失败
条件:
test 操作数1 操作符 操作数2
test 1 〉 2
操作符:
数值类型数据比较
字符串类型数据表较
文件类型数据表较
[ ]:代替test
注意括号前后加空格
操作数和操作符之间要有空格
[ -x file ]
. 脚本文件
Sh 脚本文件
./脚本文件
双引号:解释变量
单引号:当作字符串显示
$#:参数的总的数量
$*:显示所有参数
$1:各个参数
$2……$9
shift [n] :将参数向前移n位
9)流程控制结构
If:
If 条件
Then
执行命令
Elif 条件
Then
。。。
Else
。。。
Fi
File5.sh
执行命令的状态也可以当作条件
$?----
内核通过接受到命令退出时返回的数字,判断该命令是否执行成功
exit 100
测试接受参数清款
如果接受的参数小于3个,提醒
如果大于3个,显示参数
接受参数可以当条件
环境变量也可以当条件
如果是root身份登陆,提示
如果不是root,
Case语句
语法
Case 值 in
模式1|模式3)
命令1
。。。
。。。。
;;
模式2)
Esac
提醒:模式里可以使用通配符
shell脚本是给内核看
for循环
语法:
for 变量名 in 列表
do
命令1
。。。
done
until
until 条件
do
命令。。。。。
done
while
while 条件
do
命令
done
break:终止当前循环
contine:终止当前次循环
计算
expr 表达式
$((…..))
函数:定义使用
应用