shell变量学习记录
2012-06-03 01:28
344 查看
个人学习笔记,留着以后查阅,故没有做过多说明,
来自书籍《悦知文化·实战Linux Shell编程与服务器管理》(卧龙小三)
详细解释,请参考此文http://blog.sina.com.cn/s/blog_77f8682501011o72.html
本文出自 “itnihao的运维技术博客” 博客,请务必保留此出处http://itnihao.blog.51cto.com/1741976/885775
来自书籍《悦知文化·实战Linux Shell编程与服务器管理》(卧龙小三)
#!/bin/bash #测试变量存在与否的基本用法 #DEBUG=1 [ -n ${DEBUG-'0'} ] && set -v #定义两个变量,用hostname获取当前主机名 myhostname=$(hostname) myhostip= mydir= msge= msgg=msggisok #取消变量myhostip unset myhostip #变量引用,语法${待测变量-默认值},若变量不存在,则符合判断,以传回默认值作为处置 #此处变量myhostname变量存在,故不显示data,myhostip变量前面已经取消,故显示’ip is not exist‘ a=${myhostname-'data'} b=${myhostip-'"ip is not exist"'} #此处由于前面$mydir定义为空,值存在,故不传回默认值 c=${mydir-'dir is null'} #此处的$count变量不存在,用=设置值为100 d=${count:=100} #“-”变量不存在,就显示默认值 e=${msge:-'变量不存在'} f=${msgf-:msg2} #变量存在,就显示真实的值 g=${msgg:+真实值} echo $a $b $c $d $e $f $g #变量不存在,就显示错误,并显示设置的默认值 z=${msgz:?msgz} #!/bin/bash NETWORK_PATH=$(/bin/ls /etc/rc.d/init.d/network) echo ${NETWORK_PATH} echo -e '语法${变量:位置起点},此处用":2"' network=${NETWORK_PATH:2} echo ${network} NETWORK_PATH2=$(/bin/ls /etc/rc.d/init.d/network) echo ${NETWORK_PATH2} echo -e '语法${变量:位置起点:长度}, 此处用"2:4"' network2=${NETWORK_PATH2:2:4} echo ${network2} #!/bin/bash #显示命令的本身 echo $0 #显示第二个输入 echo ${@:1} echo ${@:2} echo ${@:3} echo ${@:4} echo ${@:5} echo ${@:3:2} A=abcd echo ${#A} #!/bin/bash file=$(/bin/ls /etc/rc.d/init.d/network) echo $file echo "\${变量#样式},由前面开始,删除最短匹配的字符串" a=${file#/*/} echo $a echo "\${变量##样式},由前面开始,删除最长匹配的字符串" b=${file##/*/} echo $b echo "\${变量%样式},由前面开始,删除最短匹配的字符串" c=${file%/*} echo $c echo "\${变量%%样式},由前面开始,删除最长匹配字符串" d=${file%%/*} echo $d echo "\${变量/样式/替换字符串},替换第一个匹配的字符串" e=${file/d/NEW_WORLD} echo $e echo "\${变量//样式/替换字符串},替换所有匹配的字符串" f=${file//d/NEW_WORLD} echo $f echo "\${变量/样式/},删除第一个符合样式的字符串" g=${file/./} echo $g echo "\${变量//样式/},删除所有符合样式的字符串" h=${file//./} echo $h echo "\${变量/#样式/},删除开头第一个符合样式的字符串" i=${file/#\//} echo $i I="AB,cd,ABCDAB" echo $I echo "\${变量/%样式/},删除结尾第一个符合样式的字符串" j=${I/%AB/} #获取变量名称列表 AB='abcd' ABCD='efghi' echo $AB $ABCD dir_file="$AB$ABCD" echo "${!开头字符串@},把所以指定字符串开头的变量名称列出" echo ${!AB@} #获取数组索引列表 NUM=(a b c d e f g) echo "${!数组变量[@],把数组变量的所有索引列出来}" k=${!NUM[@]} echo $k for i in "${!NUM[@]}" do echo "num $i:${NUM[$i]}" done #!/bin/bash PASSWD_PATH=$(ls /etc/passwd) PATH=${PASSWD_PATH:+'OK'} echo $PATH #!/bin/bash PS3="请选择:" select A in a b c d do echo $A $REPLY break done 三目运算 a=1 b=2 echo $(($a==$b?0:1)) #显示结果为1 echo $(($a!=$b?0:1)) #显示结果为0
详细解释,请参考此文http://blog.sina.com.cn/s/blog_77f8682501011o72.html
本文出自 “itnihao的运维技术博客” 博客,请务必保留此出处http://itnihao.blog.51cto.com/1741976/885775
相关文章推荐
- Linux学习记录--shell变量
- Linux学习记录--shell变量
- Linux学习之2——bash shell基本语法和变量
- 记录shell脚本执行的流程及变量的值
- 学习笔记——shell中测试变量是否已经设置
- shell学习-基础(变量、输入、输出、数组、环境变量)
- python学习-错误记录-打印多个变量时少了comma,逗号
- (转载)Linux 学习记录 四(Bash 和 Shell scirpt)
- 关于tensorflow的变量(variable) 变量作用域(variable_scope) 名字作用域(name_scope)的学习记录
- <变量和操作变量>shell学习之路(二 )
- Linux之shell脚本学习(1)简介和变量
- Shell学习笔记(6)-高级变量之变量扩展
- Shell编程之Shell变量学习总结
- shell学习6--awk的编程结构--变量
- Shell学习笔记---变量赋值与运算---待完善
- 从学习export命令理解到的Shell环境和变量生存期
- shell 学习笔记 (二)——环境变量
- Shell编程之Shell变量学习总结
- 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- shell脚本学习:判断变量文件目录:权限、是否存在、空值、相等