使用自定义 bash 历史记录启动 XTerm

使用自定义 bash 历史记录启动 XTerm

我可以xterm从包含预定义命令列表的自定义 bash 历史记录开始吗?这样我就可以运行多个实例xterm,其中每个实例都有自己的历史记录。

答案1

  1. ~/myhistory使用历史记录中所需的命令创建一个文件,每行一个
  2. chmod a-w ~/myhistory,这样 Bash 就不会尝试改变它。如果你用户输入的要写回的命令(写入同一文件),请跳过此步骤。
  3. HISTFILE=~/myhistory xterm -e bash 让 Bash 加载历史数据 ~/myhistory。如果您的默认 shell 是,bash那么您可能会丢失-e bash.

在 shell 中,命令历史记录将是您在文件中写入的内容,可以通过向上箭头、历史扩展、命令fc或任何其他获取历史记录的方式进行访问。


如果您无法创建真实的文件,这个相当老套的解决方法也可以工作:

HISTFILE=<(printf '%s\n' command1 "second 'command here'" 3rd) xterm -e bash

这使用流程替代生成一个类似文件的实体供 shell 读取,其输出为printf命令作为内容。这printf将打印出每个参数,每行一个。您必须仔细引用内容,以确保作为输出的命令采用您需要的格式。

相关内容