Bash 中的 ${} 和 $() 有什么区别 ?

Bash (Bourne-Again SHell) 是一种流行的 Unix SHell,用于编写脚本。如果您使用 Bash 脚本,那么了解不同的语法元素对于提高脚本的效率和避免错误是很重要的。

在本文中,我们将解释 Bash 中 ${} 和 $() 语法之间的区别,并向您展示如何使用它们。

${} 语法:参数扩展

Bash 中的 ${} 语法用于参数扩展。这意味着它可以帮助您获取和更改变量的值。您可以使用参数展开做很多事情,比如提取字符串的一部分、更改大小写等等。

(1) 简单的变量扩展

bash 复制代码
name="Rahul Kumar"
echo ${name}

(2) 子字符串提取 (获取字符串的一部分)

bash 复制代码
name="Tecadmin.net"
echo ${name:0:4}

(3) 默认值赋值 (如果变量为空则使用默认值)

bash 复制代码
default_name="Tecadmin"
name=""
echo ${name:-$default_name}

$() 语法: 命令替换

Bash 中的 $() 语法用于命令替换。这意味着您可以运行命令并在脚本中使用其输出。当您希望将命令的结果用作另一个命令的参数或将其存储在变量中时,这非常有用。

(1) 基本命令替换

bash 复制代码
date=$(date)
echo "Today's date is $date"

(2) 在循环中使用命令替换

bash 复制代码
for file in $(ls)
do
  echo "Processing file: $file"
done

我的开源项目

相关推荐
qetfw6 小时前
Bash 字符串处理:参数展开、序列与脚本执行方式
linux·开发语言·chrome·bash
杜哥无敌1 天前
Git Bash + acme.sh 实现 SSL 证书自动续签(完整指南)
git·bash·ssl
Brilliantwxx2 天前
【Linux】基础IO(下):输出重定向、dup2 与 minishell 重定向实战
linux·运维·服务器·github·bash
Brilliantwxx4 天前
【STM32】 RTC 实时时钟详解:从概念到预分频器
stm32·单片机·嵌入式硬件·mcu·bash
qetfw6 天前
Bash 内置与外部命令:type、command 与 builtin 验证
linux·开发语言·bash
龙腾-虎跃15 天前
Linux 趣味实战|纯 Bash Shell 脚本实现俄罗斯方块终端小游戏(完整源码资源)
linux·运维·bash
君无忧≈16 天前
【无标题】
bash
树下水月25 天前
linux 系统一键巡检sh
bash
橘色的喵1 个月前
Claude Code 状态栏脚本:一行显示模型、上下文占用、git 分支和当前目录
linux·git·bash·claude
zhangzeyuaaa1 个月前
AI Agent 执行引擎选型指南:PowerShell / Bash 和 Python,边界与最佳实践
人工智能·python·bash