$在Linux中的作用

美元符号$的两种不同的用法

1.取变量的值(变量替换)

bash 复制代码
[user2@master sbin]$ name="John"
[user2@master sbin]$ echo $name
John
[user2@master sbin]$ echo ${name}
John

2.取命令的输出(命令替换)

旧式语法:反引号`

bash 复制代码
[user2@master sbin]$ echo `date` # 执行date命令,输出其执行结果
Mon May 11 22:54:09 CST 2026
[user2@master sbin]$ echo `which adduser`
/usr/sbin/adduser

新式语法:$()

bash 复制代码
[user2@master sbin]$ echo $(date)
Mon May 11 22:55:25 CST 2026
[user2@master sbin]$ echo $(which adduser)
/usr/sbin/adduser
语法 名称 作用 示例
$var 变量替换 取变量的值 $HOME/home/user
$(command) 命令替换 先执行命令,再用输出结果替换 $(date)2026-05-11...

容易混淆的例子:

bash 复制代码
[user2@master sbin]$ echo $date # 取变量date的值,发生变量替换,$date换成变量date的值:"Hello"
Hello
[user2@master sbin]$ echo $(date) # 执行系统命令date
Mon May 11 22:58:32 CST 2026

一个结合dirname命令的例子

bash 复制代码
[user2@master ~]$ which adduser # 查看adduser命令的所在路径
/usr/sbin/adduser
[user2@master ~]$ cd $(dirname $(which adduser)) # 切换到adduser命令所在的那个目录
[user2@master sbin]$ pwd
/usr/sbin
相关推荐
Elastic 中国社区官方博客5 小时前
列式存储并不等同于列式数据库。Columnar 模式为 Elasticsearch 带来了什么
大数据·运维·数据库·elasticsearch·搜索引擎
fengkai45456 小时前
八、Docker详解4-5
运维·docker
智恒百亿6 小时前
RTX 5090 八卡服务器 vs RTX PRO 6000 整机:AI 推理、微调与渲染选型部署指南
运维·服务器·rtx5090
ManageEngineITSM6 小时前
DevOps和ITIL是什么关系?是替代还是互补一文讲清
java·服务器·资产管理·变更管理
DYWorker0017 小时前
Linux驱动子系统:DMA-Buf —— Consumer和Provider(008)
linux·驱动开发
雯宝8 小时前
Linux 内核函数集
linux
码少女8 小时前
Linux--多路转接之select
java·服务器·数据库
GeW8 小时前
从挂科到高分通过:RHCE快速拿证的10个提分技巧
linux
蓝胖的四次元口袋8 小时前
Docker Compose多容器编排与Nginx集群实战
运维·nginx·docker compose
懂软件的胡子个哥9 小时前
微信 API 消息回调怎么设计,才能避免丢消息和重复处理
运维·微信·架构·wechatapi·个人微信号二次开发