如何编写一个Bash脚本或函数,使其从历史记录中删除自己?

4

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

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

基本上,就像在脚本中添加history -d $HISTCMD一样;但是,在脚本完成之后才写入历史记录项。所以不行。

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

1个回答

6

查看HISTIGNORE

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

$ HISTIGNORE='echo *'
$ echo secret
secret
$ history 3
 9921  man bash
 9922  HISTIGNORE='echo *'
 9923  history 3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接