命令替换

LinuxBeginner
立即练习

简介

在本实验中,你将学习一种实用的技巧:命令替换。

假设你正在写一封电子邮件,并且想在其中加入今天的日期。你希望计算机自动插入「今天的日期」。

在 Linux 中,可以使用 $()。它告诉计算机:「先运行这个命令,然后把结果放在这里。」

这是 Shell 最实用的组合功能之一。你不需要手动复制一个命令的输出,再粘贴到另一个命令中;Shell 可以自动完成替换。

在本实验中,你将:

  • 学习如何设置 date 命令的输出格式。
  • 创建一个自动使用当天日期命名的文件夹,例如 2025-12-23。

设置日期格式

首先,获取所需格式的日期。

如果直接运行 date,它会输出一串不易处理的文本。

这说明许多命令都支持格式化输出。Linux 工具通常允许你根据下一步用途,在便于人阅读的显示格式和便于程序处理的格式之间进行选择。

要创建类似 2025-12-23 的简洁文件夹名称,请使用 +%F:

date +%F

输出示例:

2025-12-23

创建动态文件夹

现在开始使用命令替换。

我们希望使用日期创建目录,但不想手动输入日期。

将 date 命令放在 mkdir 命令中,并使用 $() 包起来。计算机看到 $() 后,会先执行其中的命令。

运行:

mkdir $(date +%F)

执行过程:

  1. Shell 识别到 $(date +%F)。
  2. Shell 在后台运行 date +%F,得到结果,例如 2025-12-23。
  3. Shell 将 $() 部分替换为这个结果。
  4. Shell 执行 mkdir 2025-12-23。

这说明 Shell 会分阶段构建最终命令。命令替换发生在命令最终执行之前,因此替换结果可以作为普通参数使用。

验证文件夹

检查操作是否成功。

运行 ls:

ls -l

你应该会看到一个以当天日期命名的新文件夹。

如果明天运行这条命令,它会为明天创建一个新文件夹。自动化备份就是这样工作的!

总结

在本实验中,你学习了命令替换:将一个命令的输出用作另一个命令的输入。

  • 语法:$(command)
  • 过程:Linux 先运行内部命令,然后将其替换为命令输出。
  • 结果:你可以创建会根据时间、用户或其他条件自动变化的动态命令,而不必手动输入这些内容。

尝试运行 echo "Today is $(date)",再次观察命令替换的效果!