Linux Shell 编程
简介
- shell程序可以认为是将 shell 命令按照控制结构组织到一个文本文件中,批量的交给shell去执行
- 不同的 shell 解释器使用不同的 shell 命令语法
- shell程序解释执行,不生成可以执行的二进制文件
- 可以帮助用户完成特定的任务,提高使用、维护系统的效率
- 了解 shell 程序可以更好的配置和使用Linux,实现自动化运维
程序结构
以 #!
开始,其后为使用的 shell,如 /bin/bash
#
后为程序注释
function func() {}
定义函数,func
调用函数
read varname
读取用户输入,存储到变量 varname
1 |
|
执行 shell
1 | /bin/bash filename |
或
1 | # 给予执行权限 |
变量声明和使用
变量无需声明类型,可以存储不同类型的内容,大小写区分
变量 = 值
用 ""
表示字符串
使用变量:
1 | a="abc def" # 等号两边不能有空格,字符串内有空格时必须使用双引号 |
单引号、双引号、倒引号
单双引号和 PHP 类似
倒引号 ` 括起来的为命令,优先执行命令后以结果取代其位置
参数(位置变量)
1 | ./mysh arg1 arg2 ... |
在 shell 中使用 $1
表示参数1,以此类推,$0
是文件名
$*
为字符串显示的参数列表,$@
为数组形式的参数列表,$#
为参数个数
数值计算
1 | a=`expr 1 + 2` # 运算符两侧有空格 |
if
1 |
|
for
1 |
|
while & until
1 |
|
until
为条件不通过时执行循环体内容,条件通过时跳出
case
1 |
|
;;
相当于 break
,*)
相当于 default