Shell 基础

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
2
3
if [ 表达式 ];then
# code
fi

如果表达式为真,那么执行 code 处的代码,如果表达式为假的话,那么不执行。

下来是 if…else 语句

1
2
3
4
5
if [ 表达式 ];then
# if
else
# else
fi

如果表达式为真,那么执行 if 处的代码,如果表达式为假的话,那么执行 else 处的代码。

对分支的 if…else 语句

1
2
3
4
5
6
7
8
if [ 表达式 ];then
# if
elif [ 表达式 ]
then
# elseif
else
# else
fi

举个例子:

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-100

1
2
3
4
5
6
7
#!/bin/bash

len=100
for (( i=1;i<=$len;i=i+1 ))
do
echo $i
done

©版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 & 作者信息

End

坚持原创技术分享,您的支持将鼓励我继续创作!
Flyertutor WeChat Pay

WeChat Pay

Flyertutor Alipay

Alipay