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

问题描述 投票:0回答:1

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

这可能吗?

该用例是在团队拥有的集群上编写机密的包装器,我想添加一些便利,以确保所有团队成员不会无意中以纯文本形式将机密留在 Bash 历史记录中。起初,我打算要求脚本使用

read -rs
来防止命令包含秘密。然后,意识到有些人无论如何都会不可避免地在命令调用中输入秘密名称,我想知道我是否可以支持这一点,但删除调用 Bash 历史记录。

本质上,类似于在脚本中添加

history -d $HISTCMD
;但是,直到脚本完成后才会写入历史记录项。所以没有骰子。

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

bash shell command-history
1个回答
6
投票

查看

HISTIGNORE

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

$ HISTIGNORE='echo *'
$ echo secret
secret
$ history 3
 9921  man bash
 9922  HISTIGNORE='echo *'
 9923  history 3
© www.soinside.com 2019 - 2024. All rights reserved.