首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >LinuxShell单引号、双引号、反引号以及无引号的区别

LinuxShell单引号、双引号、反引号以及无引号的区别

作者头像
hotarugali
发布于 2022-02-28 20:21:16
发布于 2022-02-28 20:21:16
6.7K0
举报

1. 单引号

单引号为强引用,即将单引号中的内容原样输出,而不会对任何变量函数进行解析。比如在 Shell 中输入以下代码:

代码语言:javascript
复制
_str_="hello world"
echo '$_str_'

结果输出:

代码语言:javascript
复制
$_str_

2. 双引号

在双引号内,会解析的符号:` $ \ 除此之外,其余符号都原样输出。比如在 Shell 中输入以下代码:

代码语言:javascript
复制
_str_="hello world"
echo "$_str_"

结果输出:

代码语言:javascript
复制
hello world

3. 反引号

反引号和 () 的功能一样,都是进行命令替换,将反引号或 () 中的字符串做为命令来执行。比如在 Shell 中输入以下代码:

代码语言:javascript
复制
_str_="hello world"
echo `$_str_`

结果输出:

代码语言:javascript
复制
Command 'hello' not found, but can be installed with:

sudo apt install hello            
sudo apt install hello-traditional

这是因为反引号将变量 $_str_ 当作命令来处理了。

4. 无引号

同双引号,只是在对变量进行赋值、引用时,如果含有特殊字符(比如空格),则需要在特殊字符前添加转义字符 \ 。 比如在Shell中输入以下代码:

代码语言:javascript
复制
_str_=hello world
echo $_str_

结果输出:

代码语言:javascript
复制
Command 'world' not found, did you mean:

  command 'tworld' from deb tworld

Try: sudo apt install <deb name>

因为含有特殊字符空格,故只将 hello 赋值给了 _str_,而将 world 当成了命令进行处理。如果在 Shell 中输入以下代码:

代码语言:javascript
复制
_str_=hello\ world
echo $_str_

结果输出:

代码语言:javascript
复制
hello world

因加上了转义字符,故为正确赋值。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 1. 单引号
  • 2. 双引号
  • 3. 反引号
  • 4. 无引号
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档