最后更新日期:2024-03-21
文章目录
- 一、echo
- 二、特殊变量
- 1、$n
- 2、$#
- 3、$*
- 4、$@
- 5、$?
- 三、运算符
- 1、expr
- 2、$[n+n]
- 三、条件判断
- 1、[ condition ]
- 2、&&
- 3、||
- 四、流程控制
- 1、if
- 2、case
- 3、for
- 4、while
- 五、read读取控制台输入
一、echo
- 打印变量
#! /bin/bash
a=1 #所有变量均为字符串,a=1中间不能有空格
echo $a #输出 1
echo ${a} #输出 1
echo '$a' #输出 $a
echo '${a}' #输出 ${a}
二、特殊变量
1、$n
- 获取输入参数
#! /bin/bash
echo $1,$2,$3
#执行程序
./test.sh 1 2 3 #输出 1,2,3
2、$#
- 获取输入参数个数
#! /bin/bash
echo $#
#执行程序
./test.sh 1 2 3 #输出 3
3、$*
- 获取整体的输入参数。参数是分离的,比如可以使用for循环读取
#! /bin/bash
echo $*
#执行程序
./test.sh 1 2 3 #输出 1 2 3
4、$@
- 获取整体的输入参数
#! /bin/bash
echo $@
#执行程序
./test.sh 1 2 3 #输出 1 2 3
5、$?
- 获取最后一次执行的命令的返回结果,0代表上一次命令执行正确,非0则不正确
#! /bin/bash
echo $?
#执行程序
echo 1
./test.sh #输出 0
三、运算符
1、expr
#! /bin/bash
expr 1 + 3 #中间必须有空格
#执行程序
./test.sh #输出 4
2、$[n+n]
- 基本运算
#! /bin/bash
a=2
b=3
echo $[$a+$b]
#执行程序
./test.sh #输出 5
三、条件判断
1、[ condition ]
- 条件成立返回0,失败返回非0
- 括号中间必须有空格
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
0
2、&&
- 与运算,两者成立返回0,否则返回非0
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ] && [ 20 -eq 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
1
3、||
- 或运算,其中一个条件成立返回0,都不成立返回非0
root@embedsky-virtual-machine:/home/embedsky# [ 20 -gt 15 ] || [ 20 -eq 15 ]
root@embedsky-virtual-machine:/home/embedsky# echo $?
0
四、流程控制
1、if
- 语法:
# if后面要有空格,中括号中间要有空格
# 写法1:
if [ condition ];then
...
elif [ condition ];then
...
fi
# 写法2:
# then换行写,中括号后面就不用分号
if [ condition ]
then
...
elif [ condition ]
then
...
fi
- 例子:
#! /bin/bash
if [ $1 -eq 1 ]
then
echo 1
elif [ $1 = 2 ]
then
echo 2
fi
2、case
- 语法:
case $变量名 in
"值1")
...
;;
"值2")
...
;;
*)
...
;;
esac
- 例子:
#! /bin/bash
case $1 in
"1")
echo 1
;;
"2")
echo 2
;;
*)
echo 100
;;
esac
3、for
- 语法:
# 写法1:
for(( 初始值;循环控制条件;变量变化 ))
do
...
done
# 写法2:
for in 值1 值2 值3
do
...
done
- 例子:
# 例子1:
#! /bin/bash
s=0
for((i=1; i<=100; i++))
do
s=$[ $s + $i ]
done:
echo $s
# 例子2:
#! /bin/bash
for i in $*
do
echo $i
done
4、while
- 语法:
while [ condition ]
do
...
done
- 例子
#! /bin/bash
i=1
s=0
while [ $i -le 100 ]
do
s=$[ $s + $i ]
i=$[ $i + 1 ]
done
echo $s
五、read读取控制台输入
- read(选项)(参数)
- 选项:
- -p:输入提示符
- -t :等待读取值的时间
- 参数:
- 变量:读取输入的值存放到变量
#! /bin/bash
read -t 7 -p "press any key to continue: " KEY
echo $KEY