linux - shell - 单引号与双引号

在 Shell 脚本中,双引号 (") 和单引号 (') 都用于引用字符串,但它们的解析机制有所不同。

双引号 (")

使用双引号包围的字符串会保留大多数字符的字面意义,但允许以下字符在引号内进行解析:

变量替换:如 $VAR、${VAR}。
命令替换:如 $(command)、`command`。
算术替换:如 $((expression))。

双引号内的特殊字符(如 $、`、" 和 \)需要进行转义。

示例

VAR="world"
echo "Hello, $VAR"  # 输出:Hello, world

使用命令替换

DATE=$(date)
echo "Today is $DATE"

使用算术替换

NUM1=5
NUM2=10
echo "5 + 10 = $((NUM1 + NUM2))"

在这些示例中,双引号内的变量和命令会被解析和替换。

单引号 (')

单引号包围的字符串会保留所有字符的字面意义,不进行任何解析或替换。换句话说,单引号内的所有字符都会被原样保留。

示例

VAR="world"
echo 'Hello, $VAR'  # 输出:Hello, $VAR

使用命令替换

DATE=$(date)
echo 'Today is $DATE'  # 输出:Today is $DATE

使用算术替换

NUM1=5
NUM2=10
echo '5 + 10 = $((NUM1 + NUM2))'  # 输出:5 + 10 = $((NUM1 + NUM2))

在这些示例中,单引号内的变量和命令不会被解析和替换。
什么时候使用双引号或单引号

双引号:当需要字符串中的变量、命令或算术表达式进行解析时使用。
单引号:当需要字符串中的所有字符保留其字面意义时使用。

example

使用双引号

echo "Hello, $VAR"             # 解析变量
echo "Today is $DATE"          # 解析命令替换
echo "5 + 10 = $((NUM1 + NUM2))"  # 解析算术替换

使用单引号

echo 'Hello, $VAR'             # 不解析变量
echo 'Today is $DATE'          # 不解析命令替换
echo '5 + 10 = $((NUM1 + NUM2))'  # 不解析算术替换

相关推荐

  1. linux - shell - 单引号双引号

    2024-07-16 20:48:04       17 阅读
  2. Linux中字符串使用单引号双引号的区别

    2024-07-16 20:48:04       51 阅读
  3. [linux] bash中的单引号(‘)和双引号(“)

    2024-07-16 20:48:04       26 阅读
  4. Bash Shell单引号双引号的区别详解

    2024-07-16 20:48:04       44 阅读
  5. Golang:三种引号详解-单引号双引号、反引号

    2024-07-16 20:48:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 20:48:04       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 20:48:04       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 20:48:04       62 阅读
  4. Python语言-面向对象

    2024-07-16 20:48:04       72 阅读

热门阅读

  1. vue3+vite+ts+pinia+router4后台管理-动态路由生成

    2024-07-16 20:48:04       17 阅读
  2. 【数值计算】学习笔记

    2024-07-16 20:48:04       19 阅读
  3. Docker入门:从安装到实际应用

    2024-07-16 20:48:04       21 阅读
  4. MetaGPT和LangGraph对比

    2024-07-16 20:48:04       20 阅读
  5. Linux基础命令

    2024-07-16 20:48:04       21 阅读
  6. JUC-并发的概念

    2024-07-16 20:48:04       19 阅读
  7. 第五章 初识Sping框架(2023版本IDEA)

    2024-07-16 20:48:04       18 阅读
  8. TCP重传、滑动窗口、流量控制、拥塞控制机制

    2024-07-16 20:48:04       20 阅读