【发布时间】:2014-04-06 13:39:37
【问题描述】:
我尝试在每次输入命令后将历史记录保存在 tcsh 中,而不是在“退出”命令之后保存。这是因为通常我会同时打开大约 10 个选项卡,然后我只是关闭终端窗口,而不是在每个选项卡中输入“exit”。结果是仅保存最后一个选项卡的历史记录。当我关闭终端窗口时,此解决方案不起作用:https://stackoverflow.com/a/3577709/2773143。
因为我没有找到仅使用历史命令的解决方案,所以我尝试通过不同的方式解决它:将每个命令直接回显到 ~/.tcsh_history 并在 .tcshrc 文件中设置 set histfile= ~/.tcsh_history。但是我也没有找到办法做到这一点。我想过在.alias 中对所有命令做一个别名,比如alias * '*; ~/someScript.tcsh(还有许多其他版本),但它没有用。我找到了如何通过对每个命令执行不同的别名来使其工作,但这有点难看。
例如:alias cd 'cd \!*; ~/saveHist.tcsh \!:0 \!*'alias grep 'grep \!*; ~/saveHist.tcsh \!:0 \!*'
(等)
并在 ~/saveHist.tcsh 文件中:
#!/bin/tcsh -f
echo "$argv" >> ~/.tcsh_history
但这当然有点难看,这样一些命令将在关闭窗口后在 ~/.tcsh_history 中写入两次。
有什么想法吗?
【问题讨论】: