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