shell脚本类似于Windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件。
shell脚本提供数组、循环、条件判断的等功能。shell脚本一般是linux运维或者系统管理员要掌握的,我们只需要掌握shell脚本最基础的部分。
1.shell脚本是个纯文本文件,命令从上而下,一行一行的开始执行。shell的扩展名为.sh.shell脚本第一行一定要为:
#!/bin/bash
表示使用bash
2.第一个shell脚本:
3.shell变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="runoob.com"
注意,变量名和等号之间不能有空格,同时,变量名的命名须遵循如下规则:
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 中间不能有空格,可以使用下划线 _。
- 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
有效的 Shell 变量名示例如下:
RUNOOB LD_LIBRARY_PATH _var var2
无效的变量命名:
?var=123 user*name=runoob
3.shell脚本交互
使用read来实现交互
read:接收键盘或其它文件描述符的输入。read 命令接收标准输入(键盘)的输入,或者其他文件描述符的输入。得到输入后,read 命令将数据放入一个标准变量中。
read 命令格式如下:
#read [选项] [变量名]
选项:
-p:“提示信息”:在等待read输入时,输出提示信息;
-t :秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间;
-n:字符数:read命令只接收指定的字符数就会执行;
-s:隐藏输入的数据,适用于机密信息的输入;
变量名可以自定义。如果不指定变量名,则会把输入保存到默认变量REPLY中;
如果只提供了一个变量名,则将整个输入行赋予该变量;
如果提供了一个以上的变量名,则输入行分为若干字,一个接一个地赋予各个变量,而命令行上的最后一个变量取得剩余的所有字;
3.1test命令
test命令用于查看文件是否存在
4.shell脚本的条件判断、函数与循环
shell 脚本支持条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一
点的场景就不适合了。shell 脚本提供了 if then 条件判断语句,写法:
if 条件判断;then+
//判断成立要做的事情
还有 if then else 语句,写法:
if 条件判断;then
//条件判断成立要做的事情,
else.
//条件判断不成立要做的事情。+
fi
或:
if 条件判断;then
/条件判断成立要做的事情,
elif [条件判断]; then
/1条件判断成立要做的事情。
else
//条件判断不成立要做的事情。”
fi
最后还有 case 语句
case $变量 in
“第1 个变量内容”)
程序段
;;表示该程序块结束
“第n个变量内容”)
程序段
;;
esac
·二、shell 脚本也支持函数
写法如下:
function fname (){
//函数代码段
}
·三、shell 循环,
shell 脚本也支持循环,比如 while do done,表示当条件成立的时候就一直循环,直到
条件不成立。
while [条件]//括号内的状态是判断式
do //循环开始
//循环代码。
done+
还有另外一种 until do done,表示条件不成立的时候循环,条件成立以后就不循环了,写法
如下:
until [条件]
do
//循环代码段
done
for 循环,使用 for 循环可以知道有循环次数,写法
for var in con1 con2 con3..……
do
//循环代码段
done
for 循环数值处理,写法:
for((初始值;限制值;执行步长))
do
//循环代码段
done



