它是什么 ”!!”以及它如何连接到“$_”或“$?”?

它是什么 ”!!”以及它如何连接到“$_”或“$?”?

我在学习更多 bash 的同时玩字符串替换,并且我添加了!!一些虚拟示例echo ${TEST/hey/!!}......

我很惊讶它!!被替换为最后输入的命令......它是什么?它是否以某种方式连接到 magick 代码链接$?$_什至-.我还可以在 bash 中以同样的方式使用其他东西吗?

答案1

Bash 执行不同类型的自动替换,称为扩展。例如,其中一些是:

  • 历史扩展
  • 路径扩展
  • 参数扩展
  • 和别的...

当您包含!!bash 时,它会自动替换为之前执行的命令。角色!执行历史扩展。例如!10被命令历史中的第 10 个命令替换。 $进行参数和变量扩展。所有这些字符:-_、 和?都是 bash 的特殊参数。

了解它的最佳来源是 bash 手册:Bash 参考手册:顶部

您提到的示例echo ${TEST/hey/!!}包括参数和历史扩展。

相关内容