一.脚本结构
linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的。相对命令行来说,开发效率提高。因此他的构架有2部分构成#!和命令序列。其中#!指明此脚本是用哪个解析器来解析。 例如:
二.基础知识
2.1 变量
shell本允许用户设置和使用自己的变量,变量可以是数字或者字符串,用户无需指定其类型,也无需在使用前定义。
例如:
1 #!/bin/bash 2 3 #2.2 4 a="hello word" 5 b=5 6 echo "A is" $a 7 echo "B is" $b
2.2 参数
同C程序一样,shell本中也可以使用命令行参数
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
例如:
#!/bin/bash #2.3 echo "number of var:" $# echo "value of vars" $* echo "name of script" $0 echo "value of var1" $1 echo "value of var2" $2
终端: ./bash.sh a 3, 结果可以此验证
2.3 数学计算
shell本提供了一个专门的命令expr来计算数学表达式,例如expr 5 +1,但是当要把计算的结果赋值给其他变量的时候,还必须使用反号。var=`expr 20 / 10`。 例如:
#!/bin/bash #2.4 var1=10 var2=20 var3=`expr $var2 / $var1` var4=`expr $var2 + $var1` echo $var3 echo $var4
2.5 流程控制语句
2.5.1
shell脚本中最基本的流程控制语句就是if-then,使用格式:
if [ condition ] (特别提醒:方括号左右两边必须有空格)
then
commands
else
commands
fi
例如:
#!/bin/bash #2.5.1 var=10 if [ $var -gt 5 ] then echo "the value is greater than 5" fi
2.5.2
shell本提供了for命令,用于创建类似于c语言编程中for
语句一样的循环。使用格式:
for var in list
do
commands
done
例如:
#!/bin/bash #2.5.2 list="Sun Mon Tue Wed Thur Fri Sat" for day in $list do echo $day done
2.5.3
shell本提供了while命令,用于创建类似于c语言编程中
while语句一样的循环。使用格式:
while condition
do
commands
done
例如:
#!/bin/bash while [ $var -gt 0 ] do echo $var var=`expr $var - 1` done