问题是关于特殊变量。文档说:
!!:$
指定前面命令的最后一个参数。这可以缩短为
!$
.
(
$_
, 下划线。) 在 shell 启动时,设置为绝对路径名,用于调用在环境或参数列表中传递的正在执行的 shell 或 shell 脚本。随后,扩展到扩展后上一个命令的最后一个参数。还设置为用于调用在导出到该命令的环境中执行和放置的每个命令的完整路径名。
一定有一些我无法理解的差异,因为:
$ echo "hello" > /tmp/a.txt
$ echo "!$"
echo "/tmp/a.txt"
/tmp/a.txt
$ echo "hello" > /tmp/a.txt
$ echo $_
hello
Run Code Online (Sandbox Code Playgroud)
有什么不同?
我在 Bash 中发现了一些以$
符号开头的特殊参数。例如:当我徘徊退出状态我知道$?
,进程ID由 $$
等
所以,我分享 这篇文章是为了了解哪些是特殊的 bash(shell)参数及其用法。
是什么意思$_
,可以这样使用
mkdir testdirectory;cd $_
Run Code Online (Sandbox Code Playgroud)
它将重定向到新目录
测试目录
如果我这样使用,回声 $_
表明
测试目录
这意味着以前创建的目录。实际上是什么意思,我真的不知道