$在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
相关推荐
Mr. zhihao1 小时前
从救火到防火:解读华为的确定性运维方法论,以及AI扮演的真正角色
运维·人工智能·华为
wufeng无峰1 小时前
docker国内镜像源
运维·docker·容器·镜像
OpenCSG1 小时前
CSGClaw v0.3.0版本更新
运维·docker·容器
噗噗121 小时前
从零到一:如何通过 QiweAPI 快速实现企业微信自动化集成
运维·自动化·企业微信
月昤昽1 小时前
KDE面板背景个性化设置技巧
linux
山人在山上1 小时前
arcgis server 暴力迁移
运维·服务器·arcgis
鬼蛟1 小时前
Elasticsearch全文检索服务器
服务器·elasticsearch·全文检索
爱喝水的鱼丶1 小时前
SAP-ABAP:ABAP Development Tools(ADT)安装配置学习分享教程(四篇连载)第四篇:ADT连接故障排查与环境迁移教程
运维·开发语言·数据库·学习·sap·abap
久绊A1 小时前
Copy Fail Linux内核提权漏洞(CVE-2026-31431)
linux·运维·服务器