Linux系统管理_Shell编程_05_Shell基础_Bash特殊符号—其他特殊符号

本文详细介绍了Linux Shell编程中Bash的特殊符号,包括单双引号、#号、反引号`、$()、小括号()和大括号{}的用法。其中,单双引号用于字符串保护,#号用于注释,`和$()用于执行命令并捕获结果,小括号()和大括号{}涉及父Shell和子Shell的概念。中括号[]则用于变量测试,将在后续内容中进一步讲解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 环境
    • 虚拟机:VMware-10.0.7 build-2844087
    • Linux系统:CentOS 6.8
    • 远程工具:Xshell 6 (Build 0197)

Shell编程_Shell基础_Bash特殊符号—其他特殊符号

一、本文摘要

  • 内容摘要
    • 其他特殊符号及作用,比如大小括号,单双引号等
    • 用法举例

二、其他特殊符号 

符号作用

''

单引号。在单引号中所有的特殊符号,如 $ 和 “`”反引号都没有特殊含义

“”

双引号。在双引号中特殊字符都没有特殊含义,但 $、“``”和“\”是例外,拥有特殊含义

$:调用变量的值;     ``:引用命令;        \:转义符

``

反引号。反引号括起来的是系统命令,在Bash中会先执行它,和$()作用一样,推荐使用$(),因为反引号容易看错

$()

和反引号作用一样,用于引用系统命令

()

用于一串命令执行时,()中的命令会在子Shell中运行

{}

用于一串命令执行时,{}中命令会在当前Shell中执行,也可以用于变量变形与替换

[]

用于变量的测试

#

#开头的代表注释

$

用于调用变量的值,如需调用变量name的值时,需要用$name的方式得到变量的值

\

转义符,跟在\之后的特殊字符将失去特殊意义,变为普通字符

  •  举例1:单双引号、$的作用及用法
[root@localhost ~]# name=Blanchard        <--设置初始变量name
[root@localhost ~]# echo '$name'          <--单引号中没有特殊字符
$name                                     <--输出单引号中的数值
[root@localhost ~]# echo "$name"          <--双引号,$由特殊意义,调用变量值
Blanchard                                 <--输出变量值
[root@localhost ~]# echo $name            <--调用变量的值,等同于加了双引号""
Blanchard
  •   举例2:#号用法,主要用于注释

  •    举例3:反引号``和 $() 的用法
  • 两种特殊符号说明
    • 都调用系统命令,在子Shell中运行
    • 把命令结果赋给变量
    • 只要命令有输出,就会赋给变量
    • 命令结果为空,不能赋给变量,切记。
[root@localhost ~]# echo `date`        <--反引号用法
2022年 06月 11日 星期六 15:17:07 CST
[root@localhost ~]# echo $(date)       <--$()用法
2022年 06月 11日 星期六 15:17:33 CST
[root@localhost ~]# date               <--=date命令在当前Shell直接输出
2022年 06月 11日 星期六 15:17:35 CST
[root@localhost ~]# echo "`date`"      <--双引号中特殊符号
2022年 06月 11日 星期六 15:18:16 CST
  • 举例4:小括号()和大括号{}用法
  • 概念理解
    • 父Shell和子Shell:当前Shell下,再看一个Shell,前者为父Shell,后者为子Shell。

  •  知识点补充:
    • ps:查看当前进程
    • pstree:查看进程树,默认CentOS 6.8无此命令,自行yum安装一下        
  • 小括号()和大括号{}区别
异同点具体内容
共同点

都用于一串命令的执行

都是把命令放在括号里,并且命令之间用 ; 号隔开

括号里的某个命令的重定向只影响该命令,而括号外的重定向影响到括号里的所有命令

不同点

小括号()执行一串命令时,需要重新开一个子Shell进行执行

大括号{}执行一串命令时,在当前Shell中执行

小括号()最后一个命令可以不用分号;

大括号{}最后一个命令要用;号

小括号()里的各命令不必和括号有空格

大括号{}和第一个命令之间必须有一个空格

[root@localhost ~]# name=Blanchard                <--设定初始变量name
[root@localhost ~]# (name=Tiger;echo $name)       <--小括号表示命令在子Shell中运行,影响子Shell结果
Tiger
[root@localhost ~]# echo $name                    <--对父Shell变量值,不产生影响
Blanchard
[root@localhost ~]# { name=Tiger;echo $name; }    <--大括号表示命令在当前Shell或父Shell中运行,影响父Shell中结果,此时name变量值为Tiger
Tiger
[root@localhost ~]# echo $name                    <--查看当前变量值,确实已发生改变
Tiger
[root@localhost ~]# name=Tiger;echo $name         <--大括号得到的输出结果与不加大括号结果输出一致,所以大括号可以省略。
Tiger

三、未提及特殊符号——中括号[]

  • 原因说明
    • 中括号作用:主要用于变量测试
    • 变量测试涉及内容较多,会在下一个小结中总结出来

 四、小结

  • 本文知识点总结

    • 其他特殊符号作用

    • 其他特殊符号用法

        本文到此结束 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走向运维的老男孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值