一、什么是shell
定义
shell是一个作为用户与Linux系统间接口的程序,它允许用户像操作系统输入需要执行的命令。
2.功能
①执行命令 ②调用Linux工具 ③编写程序
3.特点
速度运行快、效率高。
4.类型
(1)编译型:二进制可执行程序,指令,直接执行。xx.c ->xx.exe xx 二进制只指令——直接执行;
(2)解释型:需要解释器,文本。xx.sh xx.py 解释器 Python、bash;解释型执行文件需要一个解释器,解释执行。
二、shell的语法
变量:本地变量、环境变量、参数变量。
(1)本地变量:在默认情况下,所有变量都被看做字符串并以字符串来存储。
(2)环境变量:当一个shell脚本程序开始执行时,一些变量会根据环境设置中的值进行初始化。这些变量通常用大写 字母做名字,以便把它们和用户在脚本程序里定义的变量区分开来,后者都用小写字母做名字。
②常用的环境变量如下:
(3)参数变量:如果脚本程序在调用时带有参数,一些二外的变量就会被创建。即使没有传递任何参数,环境变量$#也依然存在,此时它的值为0。
②参数变量如下:
2.条件:字符串比较、算术比较、文件测试(如:&& ||)。
在实际工作中,大多数脚本程序都会使用shell的布尔判断命名[或test。为了增强可读性,还会使用符号]来结尾。
test命令的用法:
if test -f fred.c
then
...
fi
if [ -f fred.c ]
then
...
fi
注意:符号和被检查的条件之间留出空格。如果把test和if放在同一行上,就必须用一个分号;把test语句和then分隔开。
(1)字符串比较
(2)算术比较
(3)文件条件测试
3.循环:for、while、until、bash。
(1)for语句
①在默认情况下,所有的shell变量值都被认为是字符串,而for结构循环能够处理一组值,这组值可以使任意字符串的集合。
②语法规则:
for variable(变量) in values(值)
do
statements(命令)
done
(2)while语句
①如果需要重复执行一个命令序列,但事先又不知道这个命令应该执行的次数,通常使用while语句。
②语法规则:
while condition(条件)
do
statements(命令)
done
③用法示例:
(3)until语句
①一般来说,如果不需要执行循环,就选用until循环;如果需要至少循环一次,就使用while循环。
②语法规则:
until condition(条件)
do
statements(命令)
done
(4)case语句
①case结构允许通过一种比较复杂的方式将变量的内容和模式进行匹配,再根据匹配的模式去执行不同的代码。
②语法规则:
case variable in
pattern [ | pattern] ...) statements;;
pattern [ | pattern] ...) statements;;
...
esac
注意:每个模式行都已双分号;;结尾
③例题演示:用case结构编写一个新版的输入测试脚本程序,让它更具有选择性并且对非预期输入也更宽容。(不区分大小写)
while true
do
echo "input"
read line
case "$line" in
//输入y或Y或yes或YES
[yY]|[yY][eE][sS] ) echo "this is yes";;
[nN]|[nN][oO] ) echo "this is no";;
end ) break;;
*) echo "***";;
esac
done
如有错误,敬请指正。
您的收藏与点赞都是对我最大的鼓励和支持!