$在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
相关推荐
阳光九叶草LXGZXJ6 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
奔跑的大白啊6 小时前
多容器共享目录权限踩坑记
linux·ubuntu·共享目录·linux权限·docker 容器化部署
黄大刀7 小时前
DataPulse一款开箱即用的SCADA(四)-历史记录
运维·scada·动环
正在走向自律8 小时前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas
OnlineProxy8 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
归秋1429 小时前
2026 企业 AI 办公工具选型指南:从评估框架到产品适配
大数据·运维·人工智能
Android系统攻城狮9 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
H.莓飛10 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
91刘仁德10 小时前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
辻弋20110 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑