bash编程语法
首先,我们先说下bash语法都有哪些内容,随后我会随后一一去分析,加强我记忆的同时也分享下给家。
linux bash脚本的基本内容构架如下:
#!/bin/bash -----> 每个bash脚本第一行必须要写的,告诉系统这是个bash脚本。
# -----> #为注释的标志符号,#开头的行都是脚本不执行的,仅用作注释
命令段 -----> 脚本要执行的具体命令,来完成相应的功能
bash编程为过程式编程语言,有3种主要语句即为:
顺序执行语句:最简单的,至上而下执行语句,工作模式为:
#!/bin/bash
#(可有可无)
语句1
语句2
先执行语句1,再执行语句2,例如:
创建脚本 bash1.sh
输出结果为:hello !
hao are you
循环执行语句:有3种,for循环,while循环,until循环
基本结构如下:()内的内容就是变量要依次读出的内容,并要放到循环体中去执行的
for 变量 in (列表); do
循环体
done
循环体中的变量依次从列表中读取数据,知道列表中的数据读取完为止,例如:
我们求 1到100之间的所有整数的和为例,
创建脚本 bash2.sh (for循环)
图中,i为变量(bash编程中,变量无需提前定义),对变量取值要用$,如对i取值:$i
但是,我们对于图中的sun变量为什么要定义且赋予值0呢?,因为我们要做累加运算,必须有个初值,比如你要算账的话,必须知道算账之前的账单状态,才能得出结果啊,也就是数据的初始化。
{1..100}表示,1到100的所有整数1,2,3........99,100
输出结果为5050,你可以自己验证下
while循环样例:
while [条件测试]; do
循环体
done
上图中,counter=1,为条件测试的变量counter的初始值,
let counter++ , 为循环体每执行一次,变量counter就自动+1,直到不满足测试条件为止,本题中,变量counter直到大于100,不满足测试条件,循环结束,输出最后结果为5050
until循环:基本格式:
until [条件测试]; do #until的测试条件,为真跳出循环,为假则执行语句(看清楚)
循环体
done
我们依然以1+2+3+.....+99+100为例:
看到图中的测试条件了没有,while循环时,判断为 -ge 意思 小于等于,
until循环时,判断为 -gt 意思 大于,相反,这个从单词意思上就能看的出来,是不是这样啊。
这里我们说到了比较符号,那就补充下吧,
bash编程中测试类型有:
整型测试:整数的比较
基本模式为: [ $变量1 -gt $变量2 ]
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
-ne 等于
-ne 不等于
字符测试:(分为单目和双目)字符串的比较
双目:
>
<
=
>=
<=
单目:
-n String: 是否不空,不空则为真,空则为假
-z String: 是否为空,空则为真,不空则为假
选择语句:简单比放下,你选择
从A开始,选择B,则执行1,选择C,则执行2,
选择语句一般有以下几种,
单分支if语句,
最基本的格式:
if [条件测试];then #里面的【条件测试】如果为真,则执行语句1,为假执行语句2
语句1
fi
case
我们来看下选择语句的样题:
假如:如果我们输入一个整数数a,如果此整数a为偶数,则输出A,其他则退出
如果输入2,则输出 A,输入3,则退出脚本,不显示内容
上图中,让用户输入一个内容,的语句格式为: read -p 提示内容 变量
来判断一个数是否为偶数,我们用取余运算,但是发现了没有,$[$num%2],我在$num%2的前面又加了一个$,意思为,取运算完成后的数值与0进行比较,不加就会出现错误的哦
双分支if语句,
基本格式为:
if [条件测试];then
语句1
else
语句2
fi
条件测试满足即为真时,执行语句1,否则执行语句2
样例:如果我们输入一个整数数a,如果此整数a为偶数,则输出A,否则输出B
上图中,如果你输入的为2,则输出A,输入的为3,则输出B,你可以自己试下,
还有个多分支if语句:
格式为:
if [测试条件1]; then
语句1
elif [测试条件2]; then
语句2
elif [测试条件3]; then
语句3
......
......
else
语句4
fi
意思为,符合测试条件1,执行语句1,符合测试条件2,执行语句2,依次类推。
例如,我们输入一个数,如果输入1,显示A;输入2,显示B;输入3,显示C;输入4,显示D;输入其他内容,则直接退出,并且显示内容,请输入(1|2|3|4),
最后还有个case语句,也输入选择语句的一种:
格式如下:
case 变量 in
条件1)
语句1
;;
条件2)
语句2
;;
条件3)
...
;;
esac
举个例子吧,就用case语法写一下上题那个if选择语句,
结果和if选择样题是一样的,我测试过啦,才发出来的
bash中主要用到的基本内容就如上啦,其中有些,例如逻辑运算,变量的命名以及规则等,没有做详细介绍,有需要的可以问下,学而时习之,不辞下问都懂得。
bash编程语法总结,顺序,循环,选择