如何编写一个将自身从历史记录中删除的 bash 脚本或函数?

And*_*rtz 4 bash shell history

我想编写一个 bash 脚本或函数,能够从调用者的 bash 历史记录中删除与其自身调用相对应的条目。这可能吗?

该用例是在团队拥有的集群上编写秘密的包装器,我想添加一些便利,以确保所有团队成员不会无意中以纯文本形式将秘密留在 bash 历史记录中。起初,我打算要求使用脚本read -rs来防止命令包含秘密。然后,意识到有些人无论如何都会不可避免地在命令调用中输入秘密名称,我想知道我是否可以支持这一点,但删除调用 bash 历史记录。

本质上,就像history -d $HISTCMD在脚本中添加一样;但是,直到脚本完成后才会写入历史记录项。所以没有骰子。

有没有办法告诉 bash“不要在历史记录中记录此命令”或在完成后将其删除?

ogu*_*ail 6

查看HISTIGNORE

以冒号分隔的模式列表,用于决定哪些命令行应保存在历史列表中。

$ HISTIGNORE='echo *'
$ echo secret
secret
$ history 3
 9921  man bash
 9922  HISTIGNORE='echo *'
 9923  history 3
Run Code Online (Sandbox Code Playgroud)