弱引号(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传递了一个外部变量。
分享到:
相关推荐
因此字符串变量的定义有三种方式,分别是双引号、单引号和无引号。这三种方式有什么区别呢?单引号和双引号又有什么区别呢? 2.单引号 单引号定义字符串所见即所得,即将单引号内的内容原样输出,或者描述为单引号...
linux shell 引号的使用
shell 单双引号 区别 易懂 ,非常易懂 全面!
主要给大家介绍了关于每天一个Linux命令之shell单引号和双引号的经典解释,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 单引号 代码如下: str=’this is a ...
单引号和双引号都能关闭shell对特殊字符的处理。不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特殊字符不被...
在Linux操作系统上编写Shell脚本时候,我们是在变量的前面使用$符号来获取该变量的值,通常在脚本中使用”$param”这种带双引号的格式,但也有出现使用’$param’这种带引号的使用的场景,首先大家看一段例子: ...
shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符 反引号字符`的区别,学习shell编程的朋友可以看下
Linux Shell中有三种引号,分别为双引号(” “)、单引号(‘ ‘)以及反引号(` `)。 其中双引号对字符串中出现的$、”、`和\进行替换;单引号不进行替换,将字符串中所有字符作为普通字符输出,而反引号中字符串作为...
先了解下,在bash脚本中,有三种引号 1. 单引号 ‘ 2. 双引号 “ 3. 反引号 ` 单引号 两个单引号包围起来的字符串就是普通的字符串,它将保留原始的字面意思. 双引号 两个双引号包围起来的字符串,部分特殊字符...
02_Shell-使用find和xargs.PDF 03_Shell-后台执行命令.PDF 04_Shell-文件名置换.PDF 05_Shell-shell输入与输出.PDF 06_Shell-命令执行顺序.PDF 07_文本过滤-正则表达式介绍.PDF 08_文本过滤-grep 家族.PDF 09...
变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单...
第14章 环境和shell变量 132 14.1 什么是shell变量 132 14.2 本地变量 132 14.2.1 显示变量 133 14.2.2 清除变量 133 14.2.3 显示所有本地shell变量 133 14.2.4 结合变量值 134 14.2.5 测试变量是否已经设置 134 ...
Shell是Linux的外壳,是Linux的用户界面, Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。用户对Shell理解越深刻, Shell对用户工作的支持就越有力。可以说,熟练掌握Shell编程,能大大提高系统...
从网上搜集的shell 基本... o 6.1 引号 o 6.2 Here documents * 7 Shell里的函数 * 8 命令行参数 * 9 Shell脚本示例 o 9.1 一般编程步骤 o 9.2 二进制到十进制的转换 o 9.3 文件循环拷贝 * 10 脚本调试
3. 反引号(~按键处)括起来的字符串被Shell解释为命令行。执行时首先执行该命令行,然后以命令行的输出结果替换反引号部分。 4. 输入重定向符“<”的作用是把命令的标准输入重新定向到指定文件;输出重定向符“>”...