shell脚本中引号的区别

本文详细介绍了Shell脚本中单引号、双引号和反引号的用法,以及它们在变量解析和命令执行中的差异。特别关注了双引号和单引号混合使用时的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell脚本中,三种引号分别为:单引号(‘’),双引号(“”),反引号(``),反引号就是键盘esc下面的那个键。

(1) 单引号:在单引号之间的内容,是不会被解析的,会原样输出。

var=123
echo '$var'
结果为:$var

(2) 双引号:在双引号之间的内容,会被解析到,如果是取变量内容,就会将变量结果显示出来。与不加任何引号是一样的效果。

var=123
echo "$var"
结果为:123

(3) 反引号:反引号之间一般都是写命令,会显示命令的执行结果。

var=`whoami`
echo $var
结果为:root(就是你的当前登录用户)

(4) 在Shell脚本中,双引号(")和单引号(')在一起使用会有不同的效果:

双引号中的单引号不会被特殊处理,仍然被视为普通字符。
单引号中的双引号不会被特殊处理,仍然被视为普通字符。
变量在双引号中会被展开,但在单引号中不会被展开。

#!/bin/bash
  
name="Alice"

# 双引号中的单引号不会被特殊处理
echo "Hello, 'World'!"  # 输出: Hello, 'World'!

# 单引号中的双引号不会被特殊处理
echo 'Hello, "World"!'  # 输出: Hello, "World"!

# 变量在双引号中会被展开
echo "My name is $name."  # 输出: My name is Alice.

# 变量在单引号中不会被展开
echo 'My name is $name.'  # 输出: My name is $name.

#最外层双引号,变量处单引号,会展开变量,同时将单引号作为普通字符处理
echo "Hello, '${name}'!"  #输出 Hello, 'Alice'!

#最外层单引号,变量处双引号,不会展开变量,将所有内容作为普通字符
echo 'Hello, "${name}"!'  #输出 Hello, "${name}"!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值