shell脚本
规范的shell脚本的一般组成。
#!环境声明
重定向出输出:
>:只收集前面命令的正确输出
<:重定向输入
>:覆盖
>>:追加
2>:只收集前面命令的错误输出
&>:收集前面命令的错误与正确的输出
>2&:将错误的变成正确的输出
>&2:将正确的变为错误的输出
/dev/null 黑洞路径
变量:以不变的名称存放的可能会变化的值。
变量=变化的值
使用变量:$变量名
注意:1.若指定的变量已存在,相当于为此变量重新赋值。
2.等号两边不要有空格。
3.变量名不能以数字开头,不要使用关键字符。
查看变量:echo $变量名
变量的种类:
1.位置变量 ($1 $2......)
在执行脚本时提供的命令参数(非交互传值)
2.预定义变量
用来保存脚本程序的执行信息
直接使用,不能直接为这些变量赋值。
3.环境变量
pwd、USERD、HOME、SHELL
sh和bash 开启一个子进程
export 全局模式下的变量创建
export x=123
export -n 取消全局变量
export SCHOOL 发布已定义的变量
read -p "提示信息" 变量名
-p:可选
-t:可指定超时秒数
可以产生交互,将键盘输入的内容赋值给变量
stty -echo 关闭回显(不显示字幕)
stty echo 打开回显
$$:当前运行进程的PID号
$#:已加载的位置变量的个数
$*:所有位置变量的值
$?:命令执行后的判断,0正常,非0异常
$0:当前所在的进程或脚本名
$!:查询最后一个进程的PID
常用的测试项
检测文件状态:
-e:文档存在为真
-d:目录存在为真
-f: 文件存在为真
-r:文档有读权限为真
-w:文档有写权限为真
-x:文档有执行权限为真
比较整数大小
-gt:大于
-ge:大于等于
-eq:等于
-ne:不等于
-lt:小于
-le:小于等于
字符串比较
==:相等
!=:不相等
区分三种定界符
双引号"":以$引用其他变量
单引号'':把特殊字符变为普通字符输出
反撇号``:只输出命令的输出结果
&& 逻辑与,条件都要成立
|| 逻辑或,只需条件成立其中一个
!-n或-z检查变量的值是否为空值
-n或!-z检查变量的值是否为非空值
ping -c3 -i0.1 -w3 192.168.4.2
(-c为ping的次数,-i为缩短发送测试包的间隔秒数,-w为等待反馈的超时秒数)
echo $PATH 命令全局模式
本文转自夜流璃雨 51CTO博客,原文链接:http://blog.51cto.com/13399294/2053950,如需转载请自行联系原作者