一. Linux下shell介绍
Linux 下shell 命令,实现用户与系统内核的交互。
shell(即贝壳),Linux 下 shell 是就是 Linux 内核的一个外层保护工具,并负责完成用户与内核的交互。
命令是用户向系统内核发出控制请求,与之交互的文本流。
shell 是一种命令行解释器,将用户命令解释为操作系统所能理解的指令,实现用户与操作系统的交互。
同时,shell 为操作系统提供了内核之上的功能,直接用来管理和运行系统。当需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑为shell 脚本文件,交给 shell 批量执行。
二. shell脚本
用户在命令行提示符下键入命令文本,开始与 shell 进行交互。
然后,shell 将用户命令转化为内核所能够理解的指令,控制操作系统做出响应,直接控制相关的硬件设备。
最后,shell 将输出结果通过 shell 提交给用户。
这里所说的文本即 shell 脚本文件,一般命名以 .sh 结尾,例如: test.sh
shell 脚本当中的变量时没有数据类型的,它会把你的输入都当成是一个字符串来处理。
1. shell 脚本格式
shell 脚本文件的内容以如下格式开始:
#!/bin/bash
2. shell 脚本结构性语句
shell 结构性语句,主要根据程序的运行状态、输入数据、变量的取值、控制信号以及运行时间等因素来控制程序的运行流程。
主要包括:条件测试语句(两路分支)、多路分支语句、循环语句、循环控制语句与后台执行语句等。
(1) 条件语句
if 条件语句
条件测试语句很几种写法。其中一种写法如下(注意,if 语句后面表达式的中括号中,表达式与中括号之间需要空格隔开,否则,无法运行。):
#! /bin/bash
if [ -e $1 ]
then
echo "$1 exist"
else
echo "$1 not exist"
fi
if 条件语句有几种写法:
//分层结构1
if 表达式1
then
命令表1
else
命令表2
fi
或者
//分层结构2
if 表达式1
then
命令表1
elif 表达式2
then
命令表2
else
命令表3
fi
case 条件语句
case 条件语句结构如下:
case 字符串变量 in
模式1)
命令表1
;; //相当于C语言中的 break
模式2)
命令表2
;;
......
*)
命令表n
;;
esac
注意:
(1) case 语句只能检测字符串变量。
(2) 命令表以单独的双引号行结束,退出 case语句。
(3) case匹配项中可以存在多个模式,每个模式之间用 | 隔开。
在实际的开发中,根据需要选择需要的条件语句。当模式不多时,可以选择 if 条件语句,当模式很多的时候,例如项目需要菜单选项功能时,可以选 case 条件语句更方便直观。