树叶云UNIX教程:UNIX Shell引用机制

Shell引用机制

元字符

UNIX Shell 提供有特殊意义的各种元字符,同时利用他们在任何 Shell 脚本,并导致终止一个字,除了引用。

举个例子,在列出文件中的目录时 匹配一个一元字符,并且 * 匹配多个字符。下面是一个 Shell 特殊字符(也称为元字符)的列表:

    * ? [ ] ' " \ $ ; & ( ) | ^ < > new-line space tab

在一个字符前使用 \ ,它可能被引用(例如,代表它自己)。

例子

下面的例子,显示了如何打印 * 或

    #!/bin/sh

    echo Hello; Word

这将产生下面的结果。

    Hello
    ./test.sh: line 2: Word: command not found

    shell returned 127

现在,让我们尝试使用引用字符:

    #!/bin/sh

    echo Hello\; Word

这将产生以下结果:

    Hello; Word

$ 符号是一个元字符,所以它必须被引用,以避免被 Shell 特殊处理:

    #!/bin/sh

    echo "I have \$1200"

这将产生以下结果:

    I have $1200

是以下四种形式的引用:

QuotingDescription
单引号所有在这些引号之间的特殊字符会失去它们特殊的意义
双引号所有在这些引号之间的特殊字符会失去它们特殊的意义除了以下字符:
– $
– `
– \$
– \’
– \”
-\\
反斜杠任何直接跟在反斜杠后的字符会失去它们特殊的意义
反引号所有在这些引号之间的特殊字符会被当做命令而被执行

单引号

考虑包含许多特殊的 Shell 字符的 echo 命令:

    echo <-$1500.**>; (update?) [y|n]

在每个特殊字符前加反斜杠会显得异常繁琐,并且不容易阅读:

    echo \<-\$1500.\*\*\>\; \(update\?\) \[y\|n\]

有一个简单的方法来引用一大组字符。将一个单引号(’)放在字符串的开头和结尾:

    echo '<-$1500.**>; (update?) [y|n]'

单引号内的任何字符被引用正如每个字符前均加上一个反斜杠。所以,现在这个 echo 命令将正确地显示。

如果要输出的一个字符串内出现一个单引号,你不应该把整个字符串置于单引号内,相反你应该在单引号前使用反斜杠(\)如下:

    echo 'It\'s Shell Programming'

双引号

尝试执行以下 Shell 脚本。这个 Shell 脚本使用了单引号:

    VAR=ZARA
    echo '$VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]'

这将输出以下结果:

    $VAR owes <-$1500.**>; [ as of (`date +%m/%d`) ]

所以这不是你想显示的内容。很明显,单引号防止变量替换。如果想替换的变量值和如预期那样使引号起作用,那么就需要把命令放置在双引号内,如下:

    VAR=ZARA
    echo "$VAR owes <-\$1500.**>; [ as of (`date +%m/%d`) ]"

这将产生以下结果:

    ZARA owes <-$1500.**>; [ as of (07/02) ]

除以下字符外,双引号使所有字符的失去特殊含义:

  • $ 参数替代。
  • 用于命令替换的反引号。
  • \$ 使美元标志在字面上显示。
  • \` 使反引号在字面上显示。
  • \” 启用嵌入式双引号。
  • \ 启用嵌入式反斜杠。
  • 所有其他\字符在字面上显示(而不是特殊意义)。

单引号内的任何字符被引用正如每个字符前均加上一个反斜杠。所以,现在这个 echo 命令将正确地显示。

如果要输出的字符串内出现一个单引号,你不应该把整个字符串置于单引号内,相反你应该在单引号前使用反斜杠(\)如下:

    echo 'It\'s Shell Programming'

反引号

置于反引号之间的任何 Shell 命令将执行命令

语法

下面是一个简单的语法,把任何 Shell 命令置于反引号之间:

例子

    var=`command`

例子

下面将执行 date 命令,产生的结果将被存储在 DATA 变量中。

    DATE=`date`

    echo "Current Date: $DATE"

这将输出以下结果:

    Current Date: Thu Jul  2 05:28:45 MST 2009

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/212700.html<

(0)
运维的头像运维
上一篇2025-04-10 23:54
下一篇 2025-04-10 23:56

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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