bash shell学习日记(2)特殊字符(一)之并号、分号及双分号与句号的用法

bash shell特殊字符(一)

目录

1、并号

   1.1 并号的用法

   1.2  并号在脚本中呈现

   1.3 # 特性总结

2、分号

   2.1 分号的用法

   2.2 分号在脚本中呈现

   2.3 分号用法总结

3、双分号

    3.1 双分号与case语句关系

    3.2 双分号在脚本中呈现

    3.3 双分号用法总结

4、句号

    4.1 句号的三种用法

    4.2 句号在脚本中呈现

   4.3 句号用法总结

5、总结

   以思维导出呈现

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

          bash shell日记(1)写到什么是shell和学习shell的基础环境,对shell简单的认识。正文见如下链接:https://blog.csdn.net/qq_53794425/article/details/125053543?spm=1001.2014.3001.5501,从此开始,我们将通过分析脚本的方式深入学习bash shell相关内容。本章我们将来学习特殊字符,由于特殊字符比较多,我们先从常用的说起。

一、并号 

   1.1并号的用法

     通常境况下 “#” 在bash shell当做注释较多,但也有例外。针对例外的情况我们通过1.2脚本来分析。

   1.2 并号在脚本中的呈现

    脚本逻辑:是对 “#” 在脚本中常遇到的情况作分析

复制代码
 1 #!/bin/bash
 2 
 3 # This is a comment.  
 4 
 5 echo "A commnet will follow."  # 注释在这里
 6 # 注意上一条语句中. #号前面要有一个空格
 7 
 8       # A tab precede this comment
 9 # 注意上一条语句中,注释是放在本行,行首空白的后面
10 
11 # echo中被引号的#. 是不能被当作注释的
12 # echo中被转义的#. 是不能被党组注释的
13 # 反斜线是转义字符
14 
15 echo "111-双引号 The # here does not begin a comment."
16 echo '222-单引号 The # here does not begin a comment.'
17 echo 333-无引号有转义 The \# here does not begin a comment.
18 echo 444-无引号无转义 The # here begin a comment
19 
20 # 在特定的参数替换结构中,#号不是注释
21 echo ${PATH#*:} #效果:将冒号之前的删除
22 
23 # 在数字常量表达式中,# 不是注释
24 echo $((2#101011)) # 数制转换,2进制转换为10进制,这不是注释
复制代码

脚本执行结果:

A commnet will follow.

111-双引号 The # here does not begin a comment.

222-单引号 The # here does not begin a comment.
333-无引号且有转义 The # here does not begin a comment.
444-无引号无转义 The
/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
43

    在1行中“#” 作为shell脚本的起始格式使用。3,7两行为常规用途做注释使用,需要注意的是:“#”不能写要执行命令行首,一旦写在行首/本行起始位,本行都被注释掉。

    15--24行为重点,是echo后的 # 效果,根据执行结果判断15行、16行中 “#” 不起注释作用 即 echo后的#,如果是单引号、双引号中间的#不是注释 而是直接输出。17行的中 “\" 为转义字符(了解即可,日后会详细说转义字符),bash shell默认转义字符是“ \ "  注意: echo后的#,转义字符后的#不是注释。21行 echo ${PATH#*} 输出效果为:将第一个冒号之前的删除,因此“#”做为特定参数替换的结构。 24行  echo $ ((2#101011)) 输出效果为:数值转换2进制转化为10进制,”#" 作为进制转换使用。

  1.3“#”用法总结

    常规用法:作注释使用  注意:对于命令来说不能放在 “#” 后,否则将被注释掉。

     echo后“#”的 “#”特殊效果:

  • 单引号,双引号中间的 “#” 直接输出
  • 转义字符后的 “#” 不做注释使用
  • 作为特定参数的结构
  • 作为进制转换使用

 

二、分号

  2.1 分号的用法

    分号在脚本中 作为一个命令分隔符,可以在一行中写两个或两个以上命令。

  2.2 分号在bash shell脚本中呈现    

    脚本逻辑:判断指定的文件mytestfile.txt是否存在,如果存在复制一份新的文件文件名为 mytestfile.txt.bak,如果不存在则创建这个文件。

 

复制代码
 1 #!/bin/bash
 2 
 3 # 分号(spepartor [semicolon])测试
 4 echo hello; echo there
 5 
 6 filename='mytestfile.txt'
 7 
 8 if [ -e "$filename" ]; then # 注意:if和then需要分隔  -e为文件操作符 -e ”文件名/目录“ 检验文件/目录是否存在
 9     echo "File $filename exists." ; cp $filename $filename.bak
10 else
11     echo "File $filename not found." ; touch $filename
12 fi; echo "File test complete."
13 exit
复制代码

     特需注意:在第八行中 ,-e为文件操作符 -e ”文件名/目录“ 检验文件/目录是否存在。

  2.3 分号用法总结

      记住分号在脚本中做命令分隔符的唯一用法即可。

 

三、双分号

  3.1 双分号在bash shell中的用法

     终结case选项(case多个if-else逻辑的组合)即case每个条件判断语句都是以双分号做结尾的。

  3.2 通过脚本体会双分号在脚本中的用法

    脚本逻辑:定义变量 variable,6-9行为case代码端,在顶部对variable值进行判断/测试如果值为abc,echo出对应字段。

 

复制代码
 1 #!/bin/bash
 2 # 双分号 double semicolon 示例
 3 
 4 variable='abc'
 5 
 6 case "$variable" in
 7 abc) 
8 echo "\$variable = abc";; 9 xyz)
10 echo "\$variable = xyz";; 11 esac 12 13 exit
复制代码

    脚本分析(特殊点):

  • 8行,9行中,“\” 转义字符 ,直接打印出$variable = abc或 $variable = xyz

   关于case语句:

  • case当作一个测试,依靠代码块的顶部或尾部的条件来决定程序的分支
  • 在7--8行中 “;;" 作用是告诉脚本解释器,对于case选项就这么多
  • case与esac是一对,类似if与fi

  3.3分号在bash shell脚本中用法总结

    在bash shell脚本中,主要作case语句的每个条件语句结尾来使用。注意:case知识会逐步补充,在此主要关注双分号在代码中的应用即可。

 

四、句号

   4.1 句号的三种用法

  •  做命令使用:等价于source命令,在脚本中引用文件,使用:把source/ . 后指定的文件插入到相应的文件中
  • 文件名和目录中的一部分。在文件中:放在文件名开头,则这个文件为隐藏文件 。目录中:一个单独的”."表示当前的工作目录,". ." 表示上级目录。
  • 正则表示式中作用:匹配任意单个字符。

      简单理解正则表达式:由一系列特殊字符组成的字符串,其中每一个特殊字符称为元字符,元字符并不保持本身的含义解释成另一种特殊的意思。

   4.2 句号在脚本中呈现

     脚本逻辑:通过 "." 命令引用03-04dot.txt文件,输出文件中D1那行内容。

[root@localhost ~]# vim 03-04dot.txt
D1=111
D2=222
D3=333
复制代码
 1 #!/bin/bash
 2 # 点 命令测试。点命令与source命令效果相同
 3 
 4 . 03-04dot.txt # 加载一个数据文件
 5 # 这与 source 03-04dot.txt 效果相同
 6 # 03-04dot.txt 必须存在于当前的工作目录
 7 
 8 # 下面,引用数据文件中定义的一个变量
 9 echo D1
10 
11 exit
复制代码

      脚本分析:在此bash shell脚本中“."主要做

  4.3句号在脚本中用法总结

   1、做命令使用引用文件

   2、在正则表达式中做匹配单个字符使用

   3、做为目录和文件名的一部分

 

五、本章以思维导图的方式呈现如下:

 

 

     

 

posted @   LIU-GC  阅读(1674)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示