Shell 在日常开发和维护中十分的常用,掌握它会给我们带来很多的便利,下面来简单的了解下。
变量定义
变量定义十分的简单,直接使用变量名,然后赋值,但要格外注意的是,变量两边不能有空格。1
2
3
4
5!/bin/bash
a=1
b=2.1
c="a"
数学运算
我这里只是用加法做演示,在 shell
中,如果单纯的使用 +
号,那么会直接输出,不会做运算,这是一种方法就是借助 expr
,另外一种是使用双括号的方式。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15!/bin/bash
a=1
b=2
echo $a+$b # 直接显示 1+2
方法一
c=$(expr $a + $b)
echo $c
方法二
c=$(($a + $b))
echo $c
if 判断
首先是简单的 if 语句:
1 | if [ 表达式 ];then |
如果表达式为真,那么执行 code
处的代码,如果表达式为假的话,那么不执行。
下来是 if…else 语句
1 | if [ 表达式 ];then |
如果表达式为真,那么执行 if
处的代码,如果表达式为假的话,那么执行 else
处的代码。
对分支的 if…else 语句
1 | if [ 表达式 ];then |
举个例子:1
2
3
4
5
6
7
8
9
10!/bin/bash
read -t 30 -p "input a number: " a
if [ $a -lt 3 ];then
echo $a"<3"
elif [ $a -lt 7 ];then
echo "3<"$a"<7"
else
echo "other:"$a
fi
case 语句
case 是为了简化对分支的 if…else 语句的,也是多分支语句,那么下面来看看他的语法。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15!/bin/bash
read -t 30 -p "input yes/no: " var
case "$var" in
"yes")
echo "yes"
;;
"no")
echo "no"
;;
*)
echo "error"
;;
esac
while 循环语句
下面就用一个输出1-9数字的小程序来演示 while 语句1
2
3
4
5
6
7
8!/bin/bash
i=1
while [ $i -lt 10 ]
do
echo $i
i=$(($i + 1))
done
while 的后面是一个表达式,如果表达式为真,执行循环,如果为假的话,结束循环。
until 循环
和 while 刚好相反,只要条件不成立,执行循环,如果成立,结束循环1
2
3
4
5
6
7
8!/bin/bash
i=1
until [ $i -gt 10 ]
do
echo $i
i=$(( $i+1 ))
done
for 循环语句
例一:输出3个值1
2
3
4
5
6!/bin/bash
for row in "aa" "bb" "cc"
do
echo $row
done
例二:输出一个目录下的所有目录和文件1
2
3
4
5
6!/bin/bash
for row in `ls ./`
do
echo $row
done
上面的反引号是直接执行 shell 命令,并返回结果。
例三:输出1-1001
2
3
4
5
6
7!/bin/bash
len=100
for (( i=1;i<=$len;i=i+1 ))
do
echo $i
done
©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息。
End