前言:
每门编程都有它独特的语法,比如C语言,Java等编程语言,有相同的地方也有自己独特的地方,但都离不开变量、运算符,条件判断、循环和函数这几个地方的学习,下面就让我们学习一下shell编程里的这些语法是怎样实现的吧
目录
一、if 判断
(1)基本语法
(2)案例实操
二、case语句
(1)基本语法
(2)案例实操
三、for循环
(1)基本语法 1
(2)案例实操
(3)基本语法 2
(4)案例实操
四、while循环
(1)基本语法
(2)案例实操
五、read 读取控制台输入
(1)基本语法
(2)案例实操
六、函数
(1)系统函数
(2)自定义函数
一、if 判断
(1)基本语法
1)单分支
2)多分支
注意事项:
①[ 条件判断式 ],中括号和条件判断式之间必须有空格
②if 后要有空格
(2)案例实操
输入一个数字,如果是 1,则输出 haha,如果是 2,则输出 hehe, 如果是其它,则输出wuwu
=
二、case语句
(1)基本语法
注意事项:
(1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2)双分号“;;”表示命令序列结束,相当于 java 中的 break。
(3)最后的“*)”表示默认模式,相当于 java 中的 defaut
(2)案例实操
输入一个数字,如果是 1,则输出 haha,如果是 2,则输出 hehe,如果是其它,输出 wuwu
三、for循环
(1)基本语法 1
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
(2)案例实操
从 1 加到 10
(3)基本语法 2
for 变量 in 值 1 值 2 值 3…
do
程序
done
(4)案例实操
(1)打印所有输入参数
(2)比较$*和$@区别
$*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2 …$n 的形式输出所有参数。
四、while循环
(1)基本语法
while [ 条件判断式 ]
do
程序
done
(2)案例实操
从 1 加到 100
五、read 读取控制台输入
(1)基本语法
read (选项) (参数)
①选项:
-p:指定读取值时的提示符;
-t:指定读取值时等待的时间(秒)如果-t 不加表示一直等待
②参数变量:指定读取值的变量名
(2)案例实操
提示 7 秒内,读取控制台输入的名称
六、函数
(1)系统函数
basename
(1)基本语法
basename [string / pathname] [suffix] (功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。
basename 可以理解为取路径里的文件名称
选项:
suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的suffix 去掉。
(2)案例实操
截取该~/shell/read_test.sh 路径的文件名称。
dirname
(1)基本语法
dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名 (非目录的部分),然后返回剩下的路径(目录的部分))
dirname 可以理解为取文件路径的绝对路径名称
(2)案例实操
获取 ~/shell/read_test.sh 文件的路
(2)自定义函数
(1)基本语法
[ function ] funname[()]
{
Action; [return int;]
}
(2)经验技巧
1)必须在调用函数地方之前,先声明函数,shell 脚本是逐行运行。不会像其它语言一 样先编译。
2)函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将 以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255)
(3)案例实操
计算两个输入参数的和。