我可以xterm
从包含预定义命令列表的自定义 bash 历史记录开始吗?这样我就可以运行多个实例xterm
,其中每个实例都有自己的历史记录。
答案1
~/myhistory
使用历史记录中所需的命令创建一个文件,每行一个chmod a-w ~/myhistory
,这样 Bash 就不会尝试改变它。如果你想用户输入的要写回的命令(写入同一文件),请跳过此步骤。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
将打印出每个参数,每行一个。您必须仔细引用内容,以确保作为输出的命令采用您需要的格式。