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 下面有用到


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。