bash shell学习日记(4)特殊字符(三)之 斜线与反引号、冒号与感叹号

目录

1、斜线

  1.1 反斜线与正斜线区别

  2.1反斜线与正斜线在bash shell中用法

2、反引号

  2.1 在bash shell脚本中作用

  2.2 脚本分析

3、冒号

  3.1 在bash shell脚本中作用

  3.2 通过脚本分析冒号作用

4、感叹号

   4.1 在bash shell脚本中作用

   4.2 与冒号结合分析脚本

5.总结以思维导图方式呈现

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

一、斜线

   1.1反斜线与正斜线区别

      向后倾斜(\)为反斜线,向前倾斜(/)为正斜线。

  1.2 反斜线与正斜线在bash 脚本中的用法

     1)反斜线,bash shell中常用内置的转义字符。

      什么是转义?

      转义是一种引用单个字符的方法,通过在其前面放上转义字符(默认为 \ )告诉shell要根据字符字面上的意思来做解释即把字段意思做调整,可以分为两种调整方法。

  • “怪”-----“正常”

      在shell脚本中默认$是引用变量,“ 和 ' 是引用的意思,加上转义字符后直接输出即如下:

      \$ <=> $ 、\" <=> " 、\'  <=> '

  • 正常------怪   

       常见在echo,sed等一些bash命令中,通过转义字符把正常的字符变成特殊的含义。

       \n 新的一行

        \r回车

        \t 水平制表符

        \v 垂直制表符

        \b 后退符

        \a "alert”(蜂鸣或者闪烁)

        \0xx 转换为八进制的ASCI码等价于0xx

        2)正斜线

        两种用途:

  • 在linux、unix系统中作为文件名/路径名的分隔符
  • 除法运算的运算符

二、反引号

      2.1 bash shell脚本中作用

     反引号(`)作用:命令替换,把反引号中间的命令输出结果赋给字符串里。命令替换可以重新分配一个或多个命令的输出,它把命令的输出不做更改,添加到另一个环境的上下文中。

     2.2 通过脚本分析用处

   脚本逻辑:判断脚本名称or判断脚本运行路径

 

复制代码
 1 #!/bin/bash
 2 # 本脚本名称为: 04.sh
 3 # 用于测试反引号backquote的命令替换comnnad substitution功能
 4 
 5 echo $0
 6 
 7 script_name=`basename $0`
 8 echo $script_name
 9 
10 script_name=`basename -s .sh $0`
11 echo $script_name
12 exit
复制代码

结果:

./04.sh
04.sh
04

 脚本中$0返回调用脚本的名称/执行脚本的名称。base根据所需返回。

 三、冒号

    3.1冒号在bash shell脚本中作用

     冒号在bash shell脚本中为空命令,可理解为什么都不做。类似于shell中内置命令true。

      ex:

     [root@localhost ~]# true

    [root@localhost ~]# echo $?

   0

    其中 $?返回最后一条执行命令退出状态码。

   3.2通过bash shell脚本分析

复制代码
 1 #!/bin/bash
 2 # 示例代码: 冒号 colon,空命令 null command
 3 # 例1:死循环 Endless loop
 4 
 5 while : #本行等同于 while true
 6 do
 7   operation-1
 8   operation-2
 9   opreation-3
10   operation-4
11 done
12 
13 #例2:if/then的占用符 placeholder
14 
15 if condition
16 then : #什么都不做,引出分支,有可能以后补充
17 else
18   take-some-action
19 fi
20 
21 #例3:清空一个文件,但不会修改文件的权限,与cat /dev/null类似
22 #     由于空命令是一个内建的命令,所以不会产生一个新进程
23 : > testdata.txt
复制代码

 

       例1:冒号做死循环while后的字段,一直执行。

      例2:在if-else中做占位符号,在15行中指定条件,在16行中希望做相应动作,在程序还未开发出来时使用,开发出来代替冒号。

     例3:用:重定向到一个文件最终结果和cat  /dev/null重定向结果相同(清空一个文件中内容),但使用冒号不会产生额外新进程。

四、感叹号

4.1在bash shell脚本中作用

      感叹号为取反操作符,可理解为逻辑的 “ 非 ” 操作。有两种用途:1)反转命令推出代码,即如果是成功0变为1。2)反转测试操作符的含义,ex:!=为不等。

4.2 与冒号结合分析bash shell脚本

复制代码
 1 #!/bin/bash
 2 # 叹号 ! 取反操作符 与 退出状态 的练习
 3 
 4 # true 与冒号都是什么不能做的命令
 5 true
 6 echo "Exit status of \"true\" = $?"
 7 
 8 ! true  #注意 感叹号!与 命令之间空格
 9 echo "Exit status of \"! true\" =$?"
10 
11 
12 # 退出状态码必须是十进制数,范围是0 - 255
13 exit 88
复制代码

 

执行结果: 

Exit status of "true" = 0
Exit status of "! true" =1

五、总结以思维导图方式呈现

 

 

 

       

 

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