rule 发表于 2018-8-23 12:37:38

SHELL 变量总结

  位置变量
  $0获取当前用户脚本的文件名包含路径
  $n 获取当前执行shell脚本的第n个参数,如果n大于9用大括号括起来${10}
  $# 获取当前执行shell脚本的参数个数
  $?检查上一个命令是不是成功,如果成功返回0
  0成功
  2权限拒绝
  125脚本运行错误系统相关
  126找到命令无法执行
  127没有要执行的命令
  >128命令被系统强制停止
  $$进程号
  basename $0脚本的名称
  dirname $0   脚本路径
  字符匹配
  ${#string}返回$string的长度
  ${string:position}在string中,从位置$position之后开始提取字符串
  ${string:position:length}在string中,从位置$position之后开始提取长度为$length的子串
  ${string##} 从开头开始删除
  ${string%substring}从结尾开始删除
  ${string/SUBSTRING/REPLAC} 替换$replac第一个匹配替换$substring
  ${string/%SUBSTRING/REPLAC} 从结尾开始替换$replac第一个匹配替换$substring
  ${string/#SUBSTRING/REPLAC} 从开头开始替换$replac第一个匹配替换$substring
  WD="I am a boy"
  echo ${#WD} 打印字符串长度
  echo ${WD:2}返回除了第一个字符之后的
  echo ${WD}|wc -m 也可以打印字符长度
  echo ${WD:0:3} 从第0个开始取,取三个
  echo ${WD}|cut -c 1-5 取1-5
  echo ${WD#I} 从开头删除最短字符I
  echo ${WD##I}从开头删除最长字符I
  echo ${WD/I am/You are}第一个匹配替换
  echo ${WD/#} 从开头匹配
  echo ${WD/%} 从结尾匹配
  rename
  定义变量
  1.
  ${value:-WORD}检测空变量的问题,如果$string没有定义,则打印出来position
  result=${value:-WORD}
  t=${CRON_VALUE:-UNSET}
  [ "$t" != "UNSET"] && export CRON_VALUE="$t"
  find ${path:=/tmp/} -name *.tar.gz -type -f |xargs rm -rf
  2.
  ${value:=WORD}如果变量没有定义,则将值赋予变量。
  3.
  ${value:?"message"} 如果变量名存在且非null,则返回变量的值。否则显示变量名:message
  4.
  ${value:+word} 如果变量名存在且非null,则返回word,否则返回null用于检测变量是否定义
  5.
  ${value-word} 如果变量不存在用word替代 vsftpd 下面有用到

页: [1]
查看完整版本: SHELL 变量总结