shell - 如何防止在 PowerShell 中保存以空格开头的输入历史记录?

标签 shell powershell input-history

在 bash 中(至少在 Ubuntu 中),可以不保存历史记录中以空格开头的命令(HISTCONTROL)。
有没有办法在 Powershell 中获得此功能?

最佳答案

至少从 PowerShell 5.1 开始,您可以使用 Set-PSReadlineOption -AddToHistoryHandler验证是否应使用自定义函数将命令添加到历史记录中。

-AddToHistoryHandler Specifies a ScriptBlock that controls which commands get added to PSReadLine history.

The ScriptBlock receives the command line as input. If the ScriptBlock returns $True, the command line is added to the history.


为了完整起见,这里有一个代码示例,您可以添加到您的 $PROFILE.CurrentUserAllHosts 中。
function Check-HistoryCommand($command)
{
    if ($command -like ' *') {
        return $false
    }
    # Add any other checks you want
    return $true
} 

Set-PSReadLineOption -AddToHistoryHandler ( Get-Item Function:Check-HistoryCommand ).ScriptBlock

关于shell - 如何防止在 PowerShell 中保存以空格开头的输入历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57705570/

相关文章:

php - 用于删除整个目录中起始字符和结束字符之间的所有文本的 Shell 脚本或命令

linux - 我什么时候应该在 shell 变量周围加上引号?

xml - 使用PowerShell替换嵌套XML中的值

powershell - 在未列出应用程序的计算机上获取已安装的应用程序列表SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall

bash - 让 Ctrl-p 和 Ctrl-n 搜索按键入字符过滤的 shell 历史记录

java - ANTLR 警告 : TestRig moved to org. antlr.v4.gui.TestRig

regex - bash 。如何在标签之间获取多行文本

arrays - PowerShell - 创建一个忽略重复值的数组

bash - 如何在一个文件 linux 中提取所有命令历史记录