bash 历史命令的转义破折号

Escape dash sign of bash history command

在我的 Ubuntu 系统上,我想使用 bash 历史命令来记住一些命令,但是当我输入如下命令时:

history -s "-t tag_name"

bash报错:

bash: history: -t: invalid option
history: usage: history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]

似乎-s选项的参数不能以破折号开头,因为当我输入类似

的东西时
history -s "echo test"

它工作正常。

如何让历史记录以破折号开头的命令? (不添加前导空格)

您可以向 history 发出您已完成传递参数的信号,因此它不会尝试计算 -t,如下所示:

history -s -- "-t tag_name"