shell在linux中是很常用的一种解释类型的脚本,包含很多类型,使用范围较广的为bashshell ,在读android源代码中shell文件随处可见,故对此作一备忘(详解shell都可以单独出书了),将一些常用符号和语法记录如下,方便查找
1.一个简单的shell脚本如下
#!/bin/bash
echo "Hello shell"
备注:
1).shell脚本在顶部必须添加#!/bin/bash,来指定所使用的shell类型
2)shell脚本扩展名.sh 可有可无,习惯添加,用于区别文件类型
3)执行可以这样输入:
$. a.sh
或者
$sh a.sh
2.Bash脚本中常用的符号
1)特殊符号
符号 |
使用说明 |
注释符# |
注释说明 |
双引号"" |
引号内的所有字符全部变为普通字符,除 反斜杠\ 倒引号`` 美元符$ |
单引号'' |
将引号内所有字符全部变为普通字符 |
倒引号`` |
引号内部分当作shell解释执行 |
反斜杠\ |
转义字符,将特殊字符变为普通字符 |
美元符$ |
引用变量的值 |
2)文件测试符号
符号 |
使用说明 |
-f |
文件存在且普通文件 |
-d |
文件夹存在 |
-x |
文件存在且可执行 |
-w |
文件存在且可写 |
-r |
文件存在且可读 |
-s |
文件存在且字节大于0 |
-n |
操作数长度不为0 |
-z |
操作数长度为0 |
-a |
逻辑与 |
-o |
逻辑或 |
! |
逻辑非 |
3)比较运算符
符号 |
使用说明 |
-eq |
为整数,相等(只可用于比较整数,不能比较字符串相等) |
-neq |
为整数,不相等 |
= |
为字符串,相等 |
!= |
为字符串,不相等 |
-lt |
为整数,小于 |
-gt |
为整数,大于 |
-le |
为整数,小于等于 |
-ge |
为整数,大于等于 |
符号 |
使用说明 |
$@ |
代表全部参数 |
$# |
参数的个数 |
$? |
上一个命令返回的结果 |
$$ |
当前命令所在的进程号 |
$n |
代表输入的第n个参数 |
$0 |
Shell程序的名称 |
#!/bin/bash
if [ "$1" = "normal" ]
then
echo "this is normal"
elif [ "$"2 = "active" ]
then
echo "this is active"
fi
备注:
1)在"["与"$1"之间必须添加空格,"["是一种运算符号,故需与后边参数空格隔开
2)if之后必须添加then
3)结束用fi
4.while [] do...done
备注:
1)使用时注意"["代表含义
2)结束用done
5.case esac选择语句
#!/bin/bash
case $1 in
1)
echo "选择了1"
;;
2)
echo "选择了2"
;;
esac
备注:
1)in也是linux命令,不可丢失
2)每个case分支结束用;;
3)case结束用esac
4)break可以跳出,不执行后边的分支
6.for循环
#!/bin/bash
for x in `seq 1 9 `
do
echo `expr $x \* 10 '
done
备注:
1)for 与in 连用,用于表示从某个集合中取得元素
2)`seq 1 9`表示取1-9的顺序数列
3)expr 表示求后边表达式的值
7.函数
备注:
函数的定义一定要在引用之前,可以有参数可以没有参数,可以想象为一群命令的集合
================================================================
PS:shell简单的介绍备注如上,如有错误,欢迎回帖指正