Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别摘要 Shell 是文本互动程序 相当一个命令行翻译器 能将在计算机上的操作命令 翻译为计算机可识别的二进制命令 传递给内核 以便调用计算机硬件执行相关的操作 同时 计算机执行完命令后 再通过 Shell 翻译成自然语言 呈现在用户面前

大家好,欢迎来到IT知识分享网。

摘要:Shell是文本互动程序,相当一个命令行翻译器。能将在计算机上的操作命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作。同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在用户面前。

昨天编写了一个FTP备份数据文件的脚本,昨晚执行的时候出现问题,竟是无法找到对应的文件,导致FTP备份失败。于是便抽空检查一下昨天编写的脚本,发现是由于$引用变量的时候出现问题,经过测试,才将问题解决。现在将结果过程记录下来,以供参考。

本文主要介绍Shell脚本语言三重容易搞混的符号(反引号、单引号和双引号)的使用方法,并重点介绍其中的差异之处。详细内容请参考下文。

一、登录系统LINUX

1、登陆LINUX系统

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

2、查看默认的SHELL

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

二、SHELL三种易混的引号

1、反引号

说明:反引号的功能是命令替换,在反引号(“)中的内容通常是命令行,程序会优先执行反引号中的内容,并使用运行结果替换掉反引号处的内容。如果需要调用命令的输出,或把命令的输出赋予变量,则命令必须使用反引号包含,这条命令才会执行,反引号的作用和 $(命令) 是一样的,但是反引号非常容易和单引号搞混,所以推荐大家使用 $(命令) 的方式引用命令的输出。

执行指令# echo `变量`

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

备注:反引号的命令会正常执行。

(1)、如果命令不用反引号包含,那么命令不会执行,而是直接输出。

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

(2)、只有用反引号包含命令,这条命令才会执行。

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

(3)、也可以使用$(命令)的方式

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

(4)、另一个例子,先定义一个变量sub,然后执行输出echo `$sub`,这时会将变量转换为变量的的结果并显示出来,但是会提示这个结果不是命令,因此提示“未找到命令… …”

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

2、单引号

说明:在shell脚本中,单引号内不会解析任何变量、元字符、通配符、转义符,只能被原样输出。可以这么认为,被单引号括起来的字符都是普通字符,就算特殊字符也不再有特殊含义。

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

又比如,使用echo输入日期变量

执行指令# echo ‘date’

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

备注:这条语句中的date命令不会执行,`date`会被当成普通字符输出。

3、双引号

说明:双引号会保护特殊元字符和通配符不被shell解析,但是允许变量和命令的解析,以及转义符的解析。

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

4、综合举例

说明:编写shell脚本,可以看出反引号、单引号和双引号的使用区别。

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

执行指令# sh symbol.sh

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

或者脚本内容如下:

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

执行指令# sh symbol.sh

Linux系统Shell脚本语言之反引号、单引号以及双引号的区别

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/93167.html

(0)
上一篇 2024-10-24 22:26
下一篇 2024-10-25 13:00

相关推荐

发表回复

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

关注微信