shell变量学习记录

shell变量学习记录

大家好,又见面了,我是全栈君。

个人学习笔记,留着以后查阅,故没有做过多说明,

来自书籍《悦知文化·实战Linux Shell编程与服务器管理》(卧龙小三


  1. #!/bin/bash  
  2. #测试变量存在与否的基本用法  
  3.  
  4. #DEBUG=1 
  5. [ -n ${DEBUG-‘0’} ] && set -v  
  6. #定义两个变量,用hostname获取当前主机名  
  7. myhostname=$(hostname)  
  8. myhostip=  
  9. mydir=  
  10. msge=  
  11. msgg=msggisok  
  12. #取消变量myhostip  
  13. unset myhostip  
  14. #变量引用,语法${待测变量-默认值},若变量不存在,则符合判断,以传回默认值作为处置  
  15. #此处变量myhostname变量存在,故不显示data,myhostip变量前面已经取消,故显示’ip is not exist‘  
  16. a=${myhostname-‘data’}  
  17. b=${myhostip-‘”ip is not exist”‘}  
  18. #此处由于前面$mydir定义为空,值存在,故不传回默认值  
  19. c=${mydir-‘dir is null’}  
  20. #此处的$count变量不存在,用=设置值为100  
  21. d=${
    count:=100}  
  22. #“-”变量不存在,就显示默认值  
  23. e=${msge:-‘变量不存在’}  
  24. f=${msgf-:msg2}  
  25. #变量存在,就显示真实的值  
  26. g=${msgg:+真实值}  
  27. echo $a $b $c $d $e $f $g  
  28. #变量不存在,就显示错误,并显示设置的默认值  
  29. z=${msgz:?msgz}  
  30. #!/bin/bash  
  31.  
  32. NETWORK_PATH=$(/bin/ls /etc/rc.d/init.d/network)  
  33. echo ${NETWORK_PATH}  
  34. echo -e ‘语法${变量:位置起点},此处用”:2″‘  
  35. network=${NETWORK_PATH:2}  
  36. echo ${network}  
  37.  
  38.  
  39. NETWORK_PATH2=$(/bin/ls /etc/rc.d/init.d/network)  
  40. echo ${NETWORK_PATH2}  
  41. echo -e ‘语法${变量:位置起点:长度}, 此处用”2:4″‘  
  42. network2=${NETWORK_PATH2:2:4}  
  43. echo ${network2}  
  44.  
  45. #!/bin/bash  
  46.  
  47. #显示命令的本身  
  48. echo $0  
  49. #显示第二个输入  
  50. echo ${@:1}  
  51. echo ${@:2}  
  52. echo ${@:3}        
  53. echo ${@:4}  
  54. echo ${@:5}  
  55. echo ${@:3:2}  
  56.  
  57. A=abcd 
  58. echo ${#A}  
  59. #!/bin/bash  
  60.  
  61. file=$(/bin/ls /etc/rc.d/init.d/network)  
  62. echo $file  
  63. echo “\${变量#样式},由前面开始,删除最短匹配的字符串”  
  64. a=${file#/*/}  
  65. echo $a  
  66. echo “\${变量##样式},由前面开始,删除最长匹配的字符串”  
  67. b=${file##/*/}  
  68. echo $b  
  69. echo “\${变量%样式},由前面开始,删除最短匹配的字符串”  
  70. c=${file%/*}  
  71. echo $c  
  72. echo “\${变量%%样式},由前面开始,删除最长匹配字符串”  
  73. d=${file%%/*}  
  74. echo $d  
  75. echo “\${变量/样式/替换字符串},替换第一个匹配的字符串”  
  76. e=${file/d/NEW_WORLD}  
  77. echo $e  
  78. echo “\${变量//样式/替换字符串},替换所有匹配的字符串”  
  79. f=${file//d/NEW_WORLD}  
  80. echo $f  
  81. echo “\${变量/样式/},删除第一个符合样式的字符串”  
  82. g=${file/./}  
  83. echo $g  
  84. echo “\${变量//样式/},删除所有符合样式的字符串”  
  85. h=${file//./}  
  86. echo $h  
  87. echo “\${变量/#样式/},删除开头第一个符合样式的字符串”  
  88. i=${file/#\//}  
  89. echo $i  
  90. I=“AB,cd,ABCDAB” 
  91. echo $I  
  92. echo “\${变量/%样式/},删除结尾第一个符合样式的字符串”  
  93. j=${I/%AB/}  
  94. #获取变量名称列表  
  95. AB=‘abcd’ 
  96. ABCD=‘efghi’ 
  97. echo $AB $ABCD  
  98. dir_file=“$AB$ABCD” 
  99. echo “${!开头字符串@},把所以指定字符串开头的变量名称列出”  
  100. echo ${!AB@}  
  101.  
  102. #获取数组索引列表  
  103. NUM=(a b c d e f g)  
  104. echo “${!数组变量[@],把数组变量的所有索引列出来}”  
  105. k=${!NUM[@]}  
  106. echo $k  
  107. for i in “${!NUM[@]}”  
  108. do  
  109.   echo “num $i:${NUM[$i]}”  
  110. done  
  111.  
  112. #!/bin/bash  
  113.  
  114. PASSWD_PATH=$(ls /etc/passwd)  
  115. PATH=${PASSWD_PATH:+’OK’}  
  116. echo $PATH  
  117. #!/bin/bash  
  118. PS3=“请选择:” 
  119. select A in a b c d  
  120. do  
  121. echo $A $REPLY  
  122. break  
  123. done 
  124.  
  125. 三目运算
  126. a=1
  127. b=2
  128. echo $(($a==$b?0:1)) #显示结果为1
  129. echo $(($a!=$b?0:1)) #显示结果为0
     

本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/885775,如需转载请自行联系原作者

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107967.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 布朗运动 金融学_布朗运动数学定义

    布朗运动 金融学_布朗运动数学定义作者:郑连虎来源:阿虎定量笔记正文:巴舍利耶:金融数学之父——要点:布朗运动、有效市场假说即使在信息爆炸的今天,想要了解法国数学家路易斯·巴舍利耶(LouisBachelier,1870-1946)的生活,依然缺乏资料。同许多思想超前的开拓者一样,巴舍利耶的研究成果在当时未能引起学界重视,直至50多年后被保罗·萨缪尔森…

    2022年9月30日
    1
  • next()和nextLine()的区别详解

    next()和nextLine()的区别详解//next()和nextLine()的区别详解/*next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。 *//*nextLine()方法字

    2022年5月29日
    34
  • SVN服务器创建及使用–以文档文件的管理示例

    SVN服务器创建及使用–以文档文件的管理示例来源:http://blog.csdn.net/kupe87826/article/details/8139908参考:http://baike.baidu.com/view/183128.htmhttp://wenku.baidu.com/view/ed3e3435ee06eff9aef807ff.html

    2022年7月19日
    9
  • CC2530: ZigBee协议栈实践例程(一)

    CC2530: ZigBee协议栈实践例程(一)1.ZigBee版本      ZigBee是ZigBee联盟建立的技术标准。第一个ZigBee协议栈规范于2004年发布,称为ZigBee2004或者ZigBee1.0;第二个ZigBee协议栈规范于2006年发布,称为ZigBee2006;第三个ZigBee协议栈规范于2007年发布,称为ZigBee2007;然后呢?现在是2018年了。。。2.Z-Stack版本    …

    2022年5月28日
    29
  • 如何运行PHP代码_运行php网站

    如何运行PHP代码_运行php网站如何运行php代码相信不少初学者会遇到不知道如何运行php这个尴尬的问题,小白博主就来一次比较详细的介绍第一步:下载Wampserverwarmserver提供了php运行的环境,安装的步骤这里就不给出了,百度一下会有的。http://www.wampserver.com/下载Wampserver传送门第二步:写一段简单的php代码

    2022年10月2日
    1
  • 启动eclipse提示java虚拟机无法创建「建议收藏」

    启动eclipse提示java虚拟机无法创建的解决方法:首先在eclipse属性菜单中,进入打开文件位置选项,然后下载新的eclipse.ini文件添加到目录中,最后重启eclipse服务器即可。

    2022年1月16日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号