Linux中的双引号的作用

Linux中的双引号的作用,第1张

在Linux中双引号可以取消分隔符的转义,空格算不算?能不能举个例子??

还有,find "/home/tmp" -name "*.*" -atime +10 -ok rm -f {} \对于这条shell语句中的"*.*",不是说双引号取消通配符的作用吗,那么它不就成了寻找*.* 这个文件了吗?

双引号里可以套变量,单引号里不能套变量。

Linux的三中引号:双引号 " "   ,单引号 ' ', 还有就是反引号 ` `

单引号和双引号的作用是差不多的,在里面的结果都是字符串,比如

a="date" ,b='date'  这两个是一样的。

反引号的作用就不一样了,反引号是把里面的当作一个命令来执行,比如

c=`date`

当 echo $a $b $c的时候 结果就分别是

date   date   2014-11-1 20:33

扩展资料:

Linux *** 作系统是基于UNIX *** 作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类 *** 作系统,并且使用人数还在迅猛增长。

这个问题表面你不会 C 语言。

转义符就表示这个符号后面的字符,不在代表他的基础意义,而是转变为另一个意思。

在所有系统里面,引号 ' " ` 。都有特殊用途。

用来引出特殊目的“字串”。

但有的时候,你明明需要字串里面出现的就是引号,但引号已经作为特殊用途,会被程序识别为字串开始或者结束符号,这个怎么解决?

就用 \ 进行转义,表面他后面的引号不再是字符串表示符。而是作为普通字符处理。

转义符还有很多别的用途,用来转变后面那个字符的意思。如果你学过 C 语言,这个问题你就不需要来问了。

比如 \n 换行。\\ 就表示一个 \ 字符。

还有别的根据环境不同有不同的意思:

\^

\$

\%

\/

等等……

-----------------------

是你没说清楚好不好……

Linux 下面, shell 的字符串中有一些东西,是不需要进行像 C 那样必须独立出字符串才能调用这个特殊部分的功能的。shell 依然会去解释字符串中的内容,从而方便字符串的一些处理。

比如:

jiangtao@ubuntu:~$ export name="Linux"

jiangtao@ubuntu:~$ echo "This is $name."

This is Linux.

jiangtao@ubuntu:~$

里面的 $name 依然会被当成变量处理。

同样:

jiangtao@ubuntu:~$ echo "This is `uname`."

This is Linux.

jiangtao@ubuntu:~$ uname

Linux

jiangtao@ubuntu:~$

shell 会去运行 ` ` 中的命令,这个是 Linux 下面 shell 的一个特性。而不是所有字符串中都必须无条件的纳入字符串的真实内容。

不过如果你真的想不转义,有个特别的方法:

jiangtao@ubuntu:~$ export name="Linux"

jiangtao@ubuntu:~$ echo 'This is `uname`.'

This is `uname`.

jiangtao@ubuntu:~$ echo 'This is $name.'

This is $name.

jiangtao@ubuntu:~$

也就是不用双引号,而改用单引号来包括起字符串。但是强烈不推荐,再看代码的时候,会看晕的。

这个特性在很多 Linux 的解释行语言里,都被使用,比如 PHP 就可以字符串内直接使用变量。

看来与我预测的相反,你太会用 C 了……

看看下面这个示例就能明白:

>在shell命令中有特殊含义,用于标准输出的重定向。此例中,后面未指明重定向的目标文件(直接敲回车,会将换行符newline认为是目标文件),所以报错。

在>前面加上\,就可以对>进行转义,即屏蔽其特殊含义,仅表示字符本身的字面含义。于是,此例中正确输出了 >符号。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8700903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存