弱引号(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,里面为一对主y。x里面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传递了一个外部变量。
分享到:
相关推荐
在Shell脚本编程中,单引号和双引号的使用是至关重要的,因为它们决定了字符串内变量的处理方式。以下是对单引号、双引号及其区别的详细解释: 1. **单引号**(' '): - 当字符串被单引号包围时,Shell将不会对...
在Shell脚本编程中,双引号和单引号在处理字符串时有着显著的不同,这些差异对于编写有效的脚本至关重要。下面将详细解释这两种引号的特性及其在字符串定义中的应用。 1. 双引号("): 双引号允许变量扩展和命令...
linux shell 引号的使用
在Linux Shell脚本编程中,理解单引号、双引号和反引号的作用至关重要,因为它们直接影响到命令行参数的解析方式。下面是对这些概念的详细解释。 **单引号**:在Shell中,单引号(' ')的作用是创建一个字符串,...
除了单引号和双引号之外,还可以使用转义字符 `\` 来保护某些特殊字符不被shell解析。例如,如果你想在命令行中输入一个实际的美元符号 `$` 而不是作为变量前缀,可以使用转义字符: ```bash $ echo \$var $var ```...
在Shell编程中,单引号和双引号都是用来包围字符串的,但它们在处理特殊字符的方式上有所区别,这直接影响到Shell脚本的行为。理解这些差异对于编写有效的Shell脚本至关重要。 首先,单引号 `'` 的作用是严格封闭...
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 单引号 代码如下: str=’this is a ...
在Linux Shell编程中,了解和掌握单引号、双引号、反引号和反斜杠的区别至关重要,因为它们在处理字符串和命令时起到不同的作用。 1. 单引号(' '): 单引号的作用是告诉Shell忽略其内部的所有特殊字符。这意味着...
在Linux操作系统上编写Shell脚本时候,我们是在变量的前面使用$符号来获取该变量的值,通常在脚本中使用”$param”这种带双引号的格式,但也有出现使用’$param’这种带引号的使用的场景,首先大家看一段例子: ...
awk 命令引用 shell 变量方法有多种,例如引用格式:双引号+单引号+$shell 变量+单引号+双引号,即”’$var’”。 shell 脚本和 Makefile 都是自动化构建和编译过程的重要工具,但是它们有很大的不同之处。只有了解...
在编程和数据处理中,对行文本添加单引号是一种常见的操作,特别是在处理SQL查询、CSV文件或编写脚本语言时。单引号用于界定字符串,确保内容被正确解析和处理。以下是一些关于如何在不同上下文中为行文本添加单引号...
本文将详细阐述Bash中的三种引号——单引号、双引号和反引号的特性和常见问题。 首先,我们要知道在Bash脚本中,引号的作用主要是保护字符串中的特殊字符,防止它们被Shell解析。以下是三种引号的基本特性: 1. **...
Linux Shell中有三种引号,分别为双引号(” “)、单引号(‘ ‘)以及反引号(` `)。 其中双引号对字符串中出现的$、”、`和\进行替换;单引号不进行替换,将字符串中所有字符作为普通字符输出,而反引号中字符串作为...
在本文中,我们将深入探讨Shell的基本知识,包括控制结构、条件测试、通配符和引号的使用。 **一、控制结构** 1. **顺序执行**:这是最基础的执行模式,命令按照在脚本或终端输入的顺序依次执行。 2. **分支结构**...
Shell脚本是一种弱类型语言,编写Shell脚本需要了解基本的语法规则和变量的使用。下面是Shell脚本的基本知识点总结: Shell脚本的基本结构 Shell脚本文件的第一行必须写上以下语句:`#!/bin/bash`,告诉系统当前这...