简介
Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
shell和shell脚本的区别
shell和shell脚本有什么区别?确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
脚本简介
打开文本编辑器(可以使用vi/vim命令来创建文件),新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。
输入一些代码,第一行一般是这样:
#!/bin/bash
echo "Hello World !"
“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。
echo命令用于向窗口输出文本。
定义变量规则
变量名=值
shell定义变量的规则:
1:等号两边不能有空格
2:定义特殊的变量需要用单引号或者双引号结合
3:定义linux命令需要用反单引号
区分单引号和双引号的不同和相同点
#### Shell脚本的规则 1:脚本名称使用.sh结尾
第一行的内容指定了shell脚本解释器的路径,而且这个指定路径只能放在文件的第一行
2:第一行必须写# !/bin/bash
3:输入语句用read
4:输出语句用:echo
注意点:read可以传递多个数据 read –p”name and passwoed”name password
- 超过的部分都填充在最后一个变量上
If语句(分支结构)
格式:
if [ 条件 ]
then
语句
else
语句
fi
If语句(分支结构)
if [ 条件 ]
then
语句
elif [ 条件 ]
then
语句
......
else
语句
fi
注意点:
1: if后面有空格, 2:条件两边有空格, 3:if条件里面存在变量,需要$,而且变量两边需要双引号, 4:if是结束标识
命令:ls |wc -l
Case循环语句
case规则
case $变量名 in
"值")
语句;;
"值")
语句;;
.....
esac
效果:
值可以是字符串也可以是数字, 如果数字范围[0-9]
case $变量名 in
[值])
语句;;
[值])
语句;;
.....
esac
效果:
For循环
for 变量 in 列表
do
语句
done
- 试想列表中的元素过多的时候,需要怎么做?
for 变量 seq mix step max
do
语句
done
注意:mix 开始数据 step:间隔 max 结束数据,如果step为1,可以省略
While循环
while [ 条件 ]
do
语句
done
注意:结束doneWhile后有空格, 参数之间也注意
效果:
函数
定义格式
函数名(){代码 }
调用格式
函数名
效果:
参数传递
函数中的参数
使用$n来接收数据
效果:
返回值
Shell中函数中默认存在返回值
查看函数的返回值$?
效果:
效果: