说明:
$ chmod a+x ./test.sh #使脚本具有执行权限
a=20
b=10
1.算术运算符列表 运算符 说明 举例
+ 加法 `expr $a + $b` 结果为 30。
- 减法 `expr $a - $b` 结果为 10。
* 乘法 `expr $a \* $b` 结果为 200。 #乘法使用不同
/ 除法 `expr $a / $b` 结果为 2。
% 取余 `expr $b % $a` 结果为 0。
= 赋值 a=$b 将把变量 b 的值赋给 a。
== 相等 相同则返回 true。 [ $a == $b ] 返回 false。
!= 不相等 不相同则返回 true。 [ $a != $b ] 返回 true。
2. -运算符
-eq //等于
-ne //不等于
-gt //大于
-lt //小于
ge //大于等于
le //小于等于
a.最简单的shell脚本
#!/bin/bash
echo "Hello World !"
b. 从键盘上输入内容
#!/bin/bash
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
运行脚本,输出:(比如输入一个1)
What is your name?
Hello,1
c. while循环
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 5 ]
do
COUNTER='expr $COUNTER+1' #shell脚本不是直接+1的
echo $COUNTER
done
运行脚本,输出:
1
2
3
4
5
d. until[条件] 条件为假时才执行循环
#!/bin/bash
a=0
until [ ! $a -lt 5 ]
do
echo $a
a=`expr $a + 1`
done
运行结果:
0
1
2
3
4
e. for循环
#!/bin/bash
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
运行结果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5
f. 函数
#!/bin/bash
Hello () {
echo "Url is http://see.xidian.edu.cn/cpp/shell/"
}
# Invoke your function
Hello
运行结果:
$./test.sh
Hello World
$
g. Shell文件包含执行其它脚本
1. vi subscript.sh
#!/bin/bash
url="http://see.xidian.edu.cn/cpp/view/2738.html"
echo $url
2. vi main.sh
#!/bin/bash
./subscript.sh
运行结果:
http://see.xidian.edu.cn/cpp/view/2738.html
h. 实践中总结
//if嵌套
if [ "${product}_x" = "WIFI_DVR_x" ]
then
echo "------------ run /dm05_sample-----------------"
/md05_judge
RET_VALUE=$? //如果有3个以上的返回值先把返回值保存
if [ $RET_VALUE -eq 0 ]
then
echo "run main_wifi"
/home/dvr/bin/main_wifi ${rtc} &
elif [ $RET_VALUE -eq 1 ]; then
echo "run md05_sample"
/md05_sample
elif [ $RET_VALUE -eq 2 ]; then
echo "run test pcb "
fi
fi
特殊变量列表
#!/bin/bash
echo "File Name: $0"
echo "First Parameter : $1"
echo "First Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"
运行结果:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
特殊变量列表 变量 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
shell脚本的使用
最新推荐文章于 2022-09-01 16:57:20 发布