在 Linux 的 Shell 环境中,下划线 _
是一个特殊变量,其作用根据上下文有所不同。以下是其主要用途和示例:
1. 表示上一个命令的最后一个参数
- 在交互式 Shell 或脚本中,
$_
会自动保存上一个命令的最后一个参数。$ ls /home/user/Documents
$ echo $_
/home/user/Documents # 输出最后一个参数 "Documents" 的完整路径
$ grep "pattern" file.txt
$ vi $_ # 相当于 vi file.txt
2. 表示当前 Shell 或脚本的路径
3. 在邮件检查时表示邮件文件路径
- 当 Shell 检查新邮件(通过
MAILCHECK
机制)时,$_
会保存当前邮件的文件名(此用途较少见)。
4. 作为环境变量名的一部分
- 某些应用程序会使用带下划线的环境变量(非 Shell 内置功能,而是应用自定义):
# 例如 Java 的 `_JAVA_OPTIONS` 可设置 JVM 参数
export _JAVA_OPTIONS="-Xmx512m"
注意事项
- 不要手动覆盖
_
避免将 _
作为普通变量使用(如 export _=value
),这会破坏其原生功能。 - 不同 Shell 的差异
行为在 Bash、Zsh 等 Shell 中基本一致,但建议通过
man bash
确认具体文档。
示例场景
$ mkdir new_dir && cd $_ # 创建目录并进入(等价于 cd new_dir)
$ tar -xvf archive.tar.gz
$ ls $_ # 查看解压后的文件名(假设最后一个参数是 archive.tar.gz)