Command-History
如何在fish shell中編寫歷史命令?
在
zsh
shell 中,我可以像這樣在命令行歷史記錄中寫入一些內容:#!/bin/zsh cmd="cd /special/dir" print -s $cmd" # save command in history for reuse
我怎麼能在
fish
外殼中做到這一點?
AFAICT,只有
read
內置和 shell 命令行閱讀器才能將條目添加到歷史記錄中,但只有當 stdin 是 tty 設備時,才能輕鬆編寫腳本。但是您可以手動添加條目,例如:
function add_history_entry begin flock 1 and echo -- '- cmd:' ( string replace -- \n \\n (string join ' ' $argv) | string replace \\ \\\\ ) and date +' when: %s' end >> $__fish_user_data_dir/fish_history and history merge end
接著:
add_history_entry 'cd /special/dir'
這對我來說適用於fish 3.1.2 here,但請注意,這
fish
是一個移動目標,API 經常以不兼容的方式在一個版本和下一個版本之間更改。這__fish_user_data_dir
和歷史文件的格式沒有記錄,因此它們可能會在未來的版本中消失/更改。以上還假設$fish_history
變數未設置為fish
.