简介
在本实验中,你将学习一种实用的技巧:命令替换。
假设你正在写一封电子邮件,并且想在其中加入今天的日期。你希望计算机自动插入「今天的日期」。
在 Linux 中,可以使用 $()。它告诉计算机:「先运行这个命令,然后把结果放在这里。」
这是 Shell 最实用的组合功能之一。你不需要手动复制一个命令的输出,再粘贴到另一个命令中;Shell 可以自动完成替换。
在本实验中,你将:
- 学习如何设置
date命令的输出格式。 - 创建一个自动使用当天日期命名的文件夹,例如
2025-12-23。
设置日期格式
首先,获取所需格式的日期。
如果直接运行 date,它会输出一串不易处理的文本。
这说明许多命令都支持格式化输出。Linux 工具通常允许你根据下一步用途,在便于人阅读的显示格式和便于程序处理的格式之间进行选择。
要创建类似 2025-12-23 的简洁文件夹名称,请使用 +%F:
date +%F
输出示例:
2025-12-23
创建动态文件夹
现在开始使用命令替换。
我们希望使用日期创建目录,但不想手动输入日期。
将 date 命令放在 mkdir 命令中,并使用 $() 包起来。计算机看到 $() 后,会先执行其中的命令。
运行:
mkdir $(date +%F)
执行过程:
- Shell 识别到
$(date +%F)。 - Shell 在后台运行
date +%F,得到结果,例如2025-12-23。 - Shell 将
$()部分替换为这个结果。 - Shell 执行
mkdir 2025-12-23。
这说明 Shell 会分阶段构建最终命令。命令替换发生在命令最终执行之前,因此替换结果可以作为普通参数使用。
验证文件夹
检查操作是否成功。
运行 ls:
ls -l
你应该会看到一个以当天日期命名的新文件夹。
如果明天运行这条命令,它会为明天创建一个新文件夹。自动化备份就是这样工作的!
总结
在本实验中,你学习了命令替换:将一个命令的输出用作另一个命令的输入。
- 语法:
$(command) - 过程:Linux 先运行内部命令,然后将其替换为命令输出。
- 结果:你可以创建会根据时间、用户或其他条件自动变化的动态命令,而不必手动输入这些内容。
尝试运行 echo "Today is $(date)",再次观察命令替换的效果!



