Linux-Ch05
Linux-Ch05 Shell脚本编程
Shell脚本编程的概念
基本概念
shell是指系统内核程序之上的一系列程序的集合。
- Bourne Shell(sh)、Bourne Again Shell(bash)等
Shell脚本是一个可执行的纯文本文件,由多个Shell命令组成。
- 自上而下,从左到右一次解释执行,错误即中断运行
- 命令、参数间的多个空格和空白行均被忽略
- 读取到第一个[enter]符号即开始运行
- 一般以
.sh作为后缀名
Shell脚本的两种执行方式
- 直接命令执行,必须有Shell脚本文件的r、x权限
- bash进程执行,只需要有Shell脚本文件的r权限
Shell命令分类:
-
内部命令
-
外部命令
-
查看命令类型:
1
2
3
4type [-tpa] 命令名
-t: 显示命令类型(内、外、别名)
-p:显示外部命令的完整文件名
-a:将$PATH中所有命令全部显示
自定义命令别名:
1 | alias 别名='命令字符串' |
VI/VIM文本编辑器
- vi:一个文本编辑程序
- vim:vi的加强版
Shell脚本编程
变量与输出
-
echo命令
显示一行文本内容
- -n:结尾不换行
- -e:打开反斜杠转义
- -E:取消反斜杠转义
echo后的内容:
- 单引号内:原样输出
- 双引号内:转义或变量求值
-
变量的表示
-
变量的表示:
$变量名或${变量名} -
变量的设置与取消:
变量名=变量值、unset -
变量的显示:
echo -
环境变量相关操作:
env、export -
变量输入:
read1
read -p ”提示语句“ -t 输入变量时等待的秒数 变量名
-
数组声明:
declare、typeset1
2
3
4
5declare [-aixr] 变量名
-a:数组
-i:int
-x:环境变量
-r:只读变量
-
条件和循环语句
-
if语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20单if
if [表达式]; then
语句
fi
if-else
if [表达式]; then
语句
else
语句
fi
if-elseif
if [表达式]; then
语句
elif [表达式]; then
语句
else
语句
fi -
case语句
1
2
3
4
5
6
7
8case $变量名 in
"变量值")
语句
;;
"变量值")
语句
;;
esac -
while语句
1
2
3
4
5
6
7
8
9
10
11第一种形式,类似于while do
while [ 条件表达式 ]
do
语句
done
第二种形式,类似于do while
until [ 条件表达式 ]
do
语句
done -
for循环
1
2
3
4
5
6
7
8
9
10
111
for 变量名 in value1 value2 value3...
do
语句
done
2
for ((初始值;终止条件;执行步长))
do
语句
done
函数和其他
1 | 函数声明 |
1 | 脚本调试 |
grep、sed、awk
- grep:适合查找和匹配
- sed:适合对文本进行编辑
- awk:适合格式化文本
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星辰微光的博客!




