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

	dirname $0,获取当前Shell程序的路径

cd dirname $0,进入当前Shell程序的目录

常用的测试项 检测文件状态: -e:文档存在为真 -d:目录存在为真 -f: 文件存在为真 -r:文档有读权限为真 -w:文档有写权限为真 -x:文档有执行权限为真

比较整数大小 -gt:大于 -ge:大于等于 -eq:等于 -ne:不等于 -lt:小于 -le:小于等于

字符串比较 ==:相等 !=:不相等

区分三种定界符 双引号"":以$引用其他变量 单引号'':把特殊字符变为普通字符输出 反撇号``:只输出命令的输出结果

&& 逻辑与,条件都要成立 (-a) || 逻辑或,只需条件成立其中一个(-o) !-n或-z检查变量的值是否为空值 -n或!-z检查变量的值是否为非空值

ping -c3 -i0.1 -w3 192.168.4.2 (-c为ping的次数,-i为缩短发送测试包的间隔秒数,-w为等待反馈的超时秒数)

echo $PATH 命令全局模式

echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m ×××字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天蓝字 \033[0m" echo -e "\033[37m 白色字 \033[0m" #字背景颜色范围:40-47 echo -e "\033[40;37m 黑底白字 \033[0m" echo -e "\033[41;30m 红底黑字 \033[0m" echo -e "\033[42;34m 绿底蓝字 \033[0m" echo -e "\033[43;34m 黄底蓝字 \033[0m" echo -e "\033[44;30m 蓝底黑字 \033[0m" echo -e "\033[45;30m 紫底黑字 \033[0m" echo -e "\033[46;30m 天蓝底黑字 \033[0m" echo -e "\033[47;34m 白底蓝字 \033[0m"