Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统。用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
shell脚本的执行方式
1,作为可执行程序运行
2,作为解释器参数运行
shell脚本的命令
输出命令:echo
格式:[root@localhost ~]# echo [选项] [输出内容]
选项:
-e 支持反斜线控制的字符转换
显示普通的字符串:[root@localhost ~]# echo "Hello Word!"
显示转义字符: [root@localhost ~]# echo "\Hello Word!\"
显示变量($+变量名): [root@localhost ~]# name="abc"
[root@localhost ~]# echo "you name is $name"
显示command命令执行结果:[root@localhost ~]# echo `date`
命令别名:alias
[root@localhost ~]# alias 别名='原命令' 定义别名
[root@localhost ~]# alias 查询别名
[root@localhost ~]# unalias 别名 删除别名
输出重定向 >或者>>
方式1:命令>文件:以覆盖的方式,把命令输入到指定文件中
方式2:命令>>文件:以追加的方式,把命令输入到指定文件中
输入重定向 wc
格式:[root@localhost ~]# wc [选项][文件名]
选项:
-c 统计字节数
-w 统计单词数
-l 统计行数
多命令顺序执行
命令符 格式 含义
; 命令1;命令2 多个命令顺序执行
&& 命令1&&命令2 逻辑与,命令1执行正确才会执行命令2
|| 命令1||命令2 逻辑或,命令1执行错误才会执行命令2
管道符 |
格式:[root@localhost ~]# 命令1 | 命令2
命令1的正确输出作为命令2的操作对象
grep命令
格式 :[root@localhost ~]# grep [选项] “搜索内容” 文件名
选项:
-i 忽略大小写
-n 输出行号
-v 方向查找
Bash变量
当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它
变量规则:
变量名称可以由字母、数字和下划线组成,但不能以数字开头。
变量的默认类型都是字符串型
变量用等号连接值,等号左右两侧不能有空格。
变量的值如果有空格,需要使用单引号或者双引号苦括起来。
不能使用标点符号
用户自定义变量:
[root@localhost ~]# 变量名=值
[root@localhost ~]# set 查看变量
[root@localhost ~]# unset name 删除变量
流程控制
if条件语句:
if [ 条件判断 ];then
程序
fi
或者
if [ 条件判断 ]
then
程序
fi
if else条件语句:
if [ 条件判断 ]
then
条件成立时,执行此程序
else
条件不成立时,执行的另外一个程序
fi
多分支if条件语句:
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
...省略更多条件
else
当所有条件都不成立时,最后执行此程序
fi
Case语句
case $变量名 in
"值1")
如果变量的值等值1,则执行程序1
;;
"值2")
如果变量的值等值2,则执行程序2
;;
……省略其他分支
*)
如果变量的值都不是以上的值,则执行程序
;;
esac
for循环
for 变量 in 值1 值2 值3...
do
程序
done
或者
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
while
while循环是不定循环,也称条件循环。只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止
格式: while [ 条件判断式 ]
do
程序
done