宇文氏 发表于 2018-8-19 11:22:35

shell必备基础知识

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 关闭回显(不显示字幕)
  sttyecho 打开回显
  

$$:当前运行进程的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命令全局模式


页: [1]
查看完整版本: shell必备基础知识