`
ginge
  • 浏览: 212628 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Shell 强引号和弱引号

阅读更多

弱引号(Soft Quote

  弱引号是英文的双引号。我们知道Shell命令里也有元字符(用来描述其他字符的字符)例如*$等。如果命令后面跟的参数是用双引号括起的话,Shell解释器会先扩展双引号里面元字符引导的变量,字符代表的意义。

例子一:

[Ginge@localhost ~]$ echo "$USER is my name."

Ginge is my name.

USER是一个系统定义的变量,在这个例子里,Shell解释器先把双引号里面的变量值给替换了。

例子二:

[Ginge@localhost ~]$ echo "Current dir is `pwd`"

Current dir is /home/Ginge

这个例子里,Shell解释器先执行了双引号里面的命令pwd。注意`是键盘左上方靠近tab键的字符。

 

 

强引号(Strong Quote

 强引号是英文的单引号。一般来说,在单引号里面的所有字符,包括元字符,都会当成没有特殊意义的字符。让我们把上面例子的双引号换成单引号看看到底是不是这样子。

例子三:

[Ginge@localhost ~]$ echo '$USER is my name.'

$USER is my name.

 

[Ginge@localhost ~]$ echo 'Current dir is `pwd`'

Current dir is `pwd`

 

 

小技巧

不知道大家会不会尝试打印一个单引号。既然单引号那么强大,是不是三个单引号可以实现我们要做的事情呢?

例子四:

[Ginge@localhost ~]$ echo '''

看到了吧,要是按回车键,那么那个尖括号就会一直出来。这个是什么意思呢?其实Shell只是认为我们的还有输入的,所以一直等待我们输入。

 

1)  用双引号来打印单引号

例子五:

[Ginge@localhost ~]$ echo '"'

"

2)  用单引号来打印双引号

例子六:

[Ginge@localhost ~]$ echo "'"

'

 

那么是不是说我们在单引号里面就不能用单引号了呢?不是的,看下面这个例子:

例子七:

[Ginge@localhost ~]$ echo ''''

 

可是只输出了一个空行,这是为什么呢?原来这是单引号另外一个用法,在单引号里面可以用单引号,同时变量的替换也由此开启和关闭。这句话听起来很深奥,其实很简单。

例子八:

[Ginge@localhost ~]$ echo '$USER is '$USER', Got it ?'

$USER is Ginge, Got it ?

这个例子有两对单引号,我们为了更好的说明,设最外面为一对单引号为x,里面为一对主yx里面y外面的变量替换是关闭的,y里面的变量替换又打开了。聪明的你是不是想到,要是y里面还有一对z单引号,那变量替换应该就又关闭了。到底是不是这样呢?请你试一试。

 

到这个时候,可能还会有人问到,这个技巧好像用处不是很大吧。真的没有什么用吗?呵呵,这个在用到awk时特别有用。想想,如果某个目录下有多少用户的文件,而我们仅仅想查看某个用户的文件,那么用awk怎么来实现呢?

[Ginge@localhost ~]$ ls -la | awk '{if(match($3,"'$USER'")) print}'

drwx------ 2 Ginge Ginge 4096 Aug  9 22:47 .

-rw------- 1 Ginge Ginge  528 Aug  9 22:45 .bash_history

-rw-r--r-- 1 Ginge Ginge   24 Jul 12  2006 .bash_logout

-rw-r--r-- 1 Ginge Ginge  176 Jul 12  2006 .bash_profile

-rw-r--r-- 1 Ginge Ginge  124 Jul 12  2006 .bashrc

-rwxrwxr-x 1 Ginge Ginge   21 Aug  9 22:46 echo.sh

-rw------- 1 Ginge Ginge   35 Aug  4 02:43 .lesshst

-rw------- 1 Ginge Ginge  996 Aug  9 22:47 .viminfo

-rw-r--r-- 1 Ginge Ginge  658 Sep 12  2006 .zshrc

 

看到了吧,我们利用单引号开闭功能给awk传递了一个外部变量。

1
0
分享到:
评论

相关推荐

    shell 单双引号区别-易懂.docx

    在Shell脚本编程中,单引号和双引号的使用是至关重要的,因为它们决定了字符串内变量的处理方式。以下是对单引号、双引号及其区别的详细解释: 1. **单引号**(' '): - 当字符串被单引号包围时,Shell将不会对...

    Shell双引号和单引号有哪些不同

    在Shell脚本编程中,双引号和单引号在处理字符串时有着显著的不同,这些差异对于编写有效的脚本至关重要。下面将详细解释这两种引号的特性及其在字符串定义中的应用。 1. 双引号("): 双引号允许变量扩展和命令...

    linux shell 引号的使用

    linux shell 引号的使用

    每天一个Linux命令之shell单引号和双引号的经典解释

    在Linux Shell脚本编程中,理解单引号、双引号和反引号的作用至关重要,因为它们直接影响到命令行参数的解析方式。下面是对这些概念的详细解释。 **单引号**:在Shell中,单引号(' ')的作用是创建一个字符串,...

    linux系统中单引号和双引号的区别

    除了单引号和双引号之外,还可以使用转义字符 `\` 来保护某些特殊字符不被shell解析。例如,如果你想在命令行中输入一个实际的美元符号 `$` 而不是作为变量前缀,可以使用转义字符: ```bash $ echo \$var $var ```...

    shell编程基础 单引号和双引号的区别

    在Shell编程中,单引号和双引号都是用来包围字符串的,但它们在处理特殊字符的方式上有所区别,这直接影响到Shell脚本的行为。理解这些差异对于编写有效的Shell脚本至关重要。 首先,单引号 `'` 的作用是严格封闭...

    Shell脚本字符串单引号和双引号的区别浅析

    字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 单引号 代码如下: str=’this is a ...

    linux shell中单引号、双引号、反引号、反斜杠的区别

    在Linux Shell编程中,了解和掌握单引号、双引号、反引号和反斜杠的区别至关重要,因为它们在处理字符串和命令时起到不同的作用。 1. 单引号(' '): 单引号的作用是告诉Shell忽略其内部的所有特殊字符。这意味着...

    Shell脚本中单引号(‘)和双引号(“)的使用区别

    在Linux操作系统上编写Shell脚本时候,我们是在变量的前面使用$符号来获取该变量的值,通常在脚本中使用”$param”这种带双引号的格式,但也有出现使用’$param’这种带引号的使用的场景,首先大家看一段例子: ...

    shell脚本与Makefile区别.docx

    awk 命令引用 shell 变量方法有多种,例如引用格式:双引号+单引号+$shell 变量+单引号+双引号,即”’$var’”。 shell 脚本和 Makefile 都是自动化构建和编译过程的重要工具,但是它们有很大的不同之处。只有了解...

    给行文本添加单引号例子

    在编程和数据处理中,对行文本添加单引号是一种常见的操作,特别是在处理SQL查询、CSV文件或编写脚本语言时。单引号用于界定字符串,确保内容被正确解析和处理。以下是一些关于如何在不同上下文中为行文本添加单引号...

    Shell编程 Bash引号的那点事

    本文将详细阐述Bash中的三种引号——单引号、双引号和反引号的特性和常见问题。 首先,我们要知道在Bash脚本中,引号的作用主要是保护字符串中的特殊字符,防止它们被Shell解析。以下是三种引号的基本特性: 1. **...

    Linux Shell中三种引号的用法及区别

    Linux Shell中有三种引号,分别为双引号(” “)、单引号(‘ ‘)以及反引号(` `)。 其中双引号对字符串中出现的$、”、`和\进行替换;单引号不进行替换,将字符串中所有字符作为普通字符输出,而反引号中字符串作为...

    shell 基本知识,包括控制结构,条件测试,通配符,引号等

    在本文中,我们将深入探讨Shell的基本知识,包括控制结构、条件测试、通配符和引号的使用。 **一、控制结构** 1. **顺序执行**:这是最基础的执行模式,命令按照在脚本或终端输入的顺序依次执行。 2. **分支结构**...

    shell脚本编写入门资料

    Shell脚本是一种弱类型语言,编写Shell脚本需要了解基本的语法规则和变量的使用。下面是Shell脚本的基本知识点总结: Shell脚本的基本结构 Shell脚本文件的第一行必须写上以下语句:`#!/bin/bash`,告诉系统当前这...

Global site tag (gtag.js) - Google Analytics