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

我的开源项目

相关推荐
暖核1 小时前
Linux实战入门:从零编写第一个Bash Shell脚本
linux·运维·bash
happy_baymax4 小时前
多FTP同目录文件下载脚本
bash
柒号华仔4 天前
「速通Shell」聚砖成墙,Shell函数封装之道
linux·ssh·bash
一水6 天前
Pi :内置四工具源码拆解——文件锁、变更快照与 bash 隔离
开发语言·chrome·ai·bash
北极糊的狐6 天前
阿里云宝塔报错bash tools/update.sh: No such file or directory 意思是:tools 整个目录直接丢失
阿里云·云计算·bash
xianyuCcCcCCCcc7 天前
Nginx 深度解析:从基础架构到反向代理与负载均衡实战全解
linux·运维·nginx·bash·负载均衡
大魔王爱学习14 天前
终端bash&zsh中实现基于前缀的历史命令搜索
linux·bash
酷可达拉斯15 天前
Linux操作系统-磁盘空间使用率100%如何处理?
linux·运维·服务器·云计算·bash
Nuanyt17 天前
Linux系统的 Shell 常见指令和常见知识点(以bash为主)
linux·运维·chrome·bash
小肝一下1 个月前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库