shell作为linux最常用的脚本语言,它是比c/c++更加高层的语言,虽然效率上可能比不上c,但是因为其简单方便,用途非常广泛。其实质就是多条指令的批处理。
1 程序头 !#/bin/bash 说明了shell的类型。
程序运行,在扩展名为.sh的文件中编辑完成后保存。
chmod +x ./test.sh 为新文件添加执行权限,注意./
./test.sh 运行shell脚本
2 变量,
变量声明:在shell中变量声明不像其他的高级语言需要说明变量类型,想用时可以直接拿来使用。
name="123" #inialize the valiable, Note! you can`t add space
echo $name #display the value of the name
echo ${name} #you can add {} to the valiable
<span style="font-size:18px;"> 这段程序的作用就是声明name变量,并在屏幕上显示name这个变量的值,注意!!在shell中不像c中一样可以随意添加空格</span>
变量解除:unset name 解除变量
3 echo的应用
上述例子中已经显示了echo在屏幕上显示变量值,必须在变量前夹$ 至于${name}的{}是否使用都可以,但是推荐使用
还有些特殊的变量,# $0 当前脚本的文件名
# $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
# $# 传递给脚本或函数的参数个数。
# $* 传递给脚本或函数的所有参数。
# $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
# $? 上个命令的退出状态,或函数的返回值。
# $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
例如: echo "Filename: $0" 就是显示文件名
4 参数
在运行shell脚本的时候,可以传递参数,参数的获取方式可以有
for var in "$@" #regard all the Parameters as one,
do
echo $var
done
上述方法是循环打印所有的参数值,同时for循环的使用方法也如上所示
5 命令替换
在shell中可以使用bash中的命令,不过需要反引号,在esc键的下边
具体用法
Data=`date`
echo $Data
用于显示日期
6 运算语句
在shell中没有四则运算,想要使用运算符号需要使用expr 命令,具体如下
a=1
b=2
c=`expr $a + $b`
echo $c
包括+,—,×,/,%等
7 判断语句
if [ $aa == $bb ] #关系运算符
then
echo "yes"
else
echo "No"
fi
这个语句和c中的判断语句基本一致,不过注意if后的任意空格,缺少或增加都将导致错误
8 字符串拼接
name='hahaha'
dream=""$name",Tsinghua" #拼接字符串
echo $dream
获取字符串长度
echo ${#name} #获取字符串长度
截取字符串
echo ${name:1:4} #提取子字符串
9 数组的声明和使用
array_name=("gaoxiang" "guozheng" "page") #incialize array
echo ${array_name[2]}
echo ${array_name[@]}
注意声明的时候不同元素之间为空格