我在学习更多 bash 的同时玩字符串替换,并且我添加了!!
一些虚拟示例echo ${TEST/hey/!!}
......
我很惊讶它!!
被替换为最后输入的命令......它是什么?它是否以某种方式连接到 magick 代码链接$?
或$_
什至-
.我还可以在 bash 中以同样的方式使用其他东西吗?
答案1
Bash 执行不同类型的自动替换,称为扩展。例如,其中一些是:
- 历史扩展
- 路径扩展
- 参数扩展
- 和别的...
当您包含!!
bash 时,它会自动替换为之前执行的命令。角色!
执行历史扩展。例如!10
被命令历史中的第 10 个命令替换。
$
进行参数和变量扩展。所有这些字符:-
、_
、 和?
都是 bash 的特殊参数。
了解它的最佳来源是 bash 手册:Bash 参考手册:顶部
您提到的示例echo ${TEST/hey/!!}
包括参数和历史扩展。