shell脚本手记
2016-03-01 17:35
441 查看
记录shell脚本的一些语法和使用技巧
${PWD}
$()一般是变量
function clean_driver_product()
{}
调用:
source ./hh_compile_api.sh #要调用的函数所在文件
function target_driver_all()
{
clean_driver_product
}
if false; then
语句1
语句2
语句3
语句4
fi
2.不常用
: '
语句1
语句2
语句3
语句4
'
5、逻辑运算
格式:
test "num1" opr "num2"
[ "num1" opr "num2" ]
opr 取值:
相等:-eq
不等:-ne
大于:-gt
小于:-lt 【l是字母L的小写】
小于等于:-le
大于等于:-ge
2、字符串
格式:
[ str1 opr str2]
[ opr str ]
opr取值:
相等:=
不等:!=
空串:-z
非空串:-n
3、文件
格式:
[ opr file ]
opr取值:
目录: -d
文件: -f
链接: -L
可读: -r
可写: -w
可执行: -x
文件非空: -s
4、逻辑运算符
逻辑与: -a 格式: [ condition1 -a condition2 ]
逻辑或: -o 格式: [ condition1 -o condition2 ]
逻辑否: ! 格式: [ ! condition ]
注意:[ 与condition 之间必须有空格,condition与] 之间也必须有空格
注意: -a -o 用在一个[]中间连接多个条件,而 && || 则用在多个[]之间,连接多个[]条件
非法: [ condition1 && condition2 ]
6.linux中shell变量$#,$@,$0,$1,$2的含义解释:
变量说明:
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
$? 的使用方法,可以获取上一条命令的返回值,判断是否执行成功
tftp -g -r $down_file_name 192.168.1.2
if [ $? -ne 0 ]
then
echo "No package download ..."
exit
fi
1.遍历目录,我这是用在编译当前路径下所有驱动模块的
for dirls in $(ls ${PWD}) do echo "make============${dirls}" make -C ${dirls}; done
2.${} 与$() 的区别
一般${}代表的是某一路径,如${PWD}
$()一般是变量
3.函数声明与调用
声明:function clean_driver_product()
{}
调用:
source ./hh_compile_api.sh #要调用的函数所在文件
function target_driver_all()
{
clean_driver_product
}
4.多行注释
1.常用if false; then
语句1
语句2
语句3
语句4
fi
2.不常用
: '
语句1
语句2
语句3
语句4
'
5、逻辑运算
格式:
test "num1" opr "num2"
[ "num1" opr "num2" ]
opr 取值:
相等:-eq
不等:-ne
大于:-gt
小于:-lt 【l是字母L的小写】
小于等于:-le
大于等于:-ge
2、字符串
格式:
[ str1 opr str2]
[ opr str ]
opr取值:
相等:=
不等:!=
空串:-z
非空串:-n
3、文件
格式:
[ opr file ]
opr取值:
目录: -d
文件: -f
链接: -L
可读: -r
可写: -w
可执行: -x
文件非空: -s
4、逻辑运算符
逻辑与: -a 格式: [ condition1 -a condition2 ]
逻辑或: -o 格式: [ condition1 -o condition2 ]
逻辑否: ! 格式: [ ! condition ]
注意:[ 与condition 之间必须有空格,condition与] 之间也必须有空格
注意: -a -o 用在一个[]中间连接多个条件,而 && || 则用在多个[]之间,连接多个[]条件
非法: [ condition1 && condition2 ]
6.linux中shell变量$#,$@,$0,$1,$2的含义解释:
变量说明:
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
$? 的使用方法,可以获取上一条命令的返回值,判断是否执行成功
tftp -g -r $down_file_name 192.168.1.2
if [ $? -ne 0 ]
then
echo "No package download ..."
exit
fi
相关文章推荐
- Reference for shell scripting
- Linux下Shell脚本执行PHP报错:Could not open input file
- 使用xshell远程登录ubuntu使用vi编辑不能使用删除键方向键
- hbase filter shell用法
- linux初学之6——shell基础
- shell 初始化linux系统脚本
- Azure PowerShell 1.0.0以上版本在中国Azure使用的注意事项
- Linux shell中的竖线(|)——管道符号
- shell基础
- Linux shell 之 提取文件名和目录名的一些方法
- xshell中按backspace乱码问题
- android执行shell命令,top 命令解析
- Shell脚本编程30分钟入门
- LAMP及LNMP测试环境快速构建(yum版)
- HBase 常用Shell命令
- Windows平台shellcode开发入门(三)
- Windows平台shellcode开发入门(二)
- Windows平台shellcode开发入门(一)
- Java调用Linux下的shell命令并将结果以流的形式返回
- Shell函数