Zsh实现Bash history -s等效功能:history add报错求助
在Zsh中实现Bash
history -s 的等效功能 Bash的history -s <command>用于将指定命令追加到历史记录但不执行,Zsh里有两种原生方式可以实现这个需求:
1. 用print -s快捷实现
这是最简便的方法,直接将命令字符串传入print -s即可:
print -s 'printf "FOO"'
执行后,printf "FOO"会被添加到当前会话的历史列表中,你可以通过history命令或者上下方向键看到这条记录。
2. 用fc命令(Zsh历史系统的底层工具)
Zsh的history命令其实是fc -l的别名,原生并不支持add子命令——这就是你执行history add printf "FOO"时出现fc: event not found: add错误的原因。如果要通过fc实现添加历史,可通过临时文件导入:
# 将命令写入临时文件 echo 'printf "FOO"' > /tmp/hist_temp # 从临时文件读取并添加到历史 fc -R /tmp/hist_temp # 清理临时文件 rm /tmp/hist_temp
这种方式步骤繁琐,仅在特殊场景下使用,优先推荐第一种方法。
内容的提问来源于stack exchange,提问作者user21630036
相关产品推荐
相关产品推荐

