zsh
셸 에서는 다음과 같이 명령줄 기록에 무언가를 쓸 수 있습니다.
#!/bin/zsh
cmd="cd /special/dir"
print -s $cmd" # save command in history for reuse
fish
쉘에서 이 작업을 어떻게 수행할 수 있습니까 ?
답변1
AFAICT, read
내장 및 쉘 명령줄 판독기만 기록에 항목을 추가할 수 있지만 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부터 작동하지만 fish
약간 움직이는 대상이며 API는 종종 한 버전과 다음 버전 사이에서 호환되지 않는 방식으로 변경된다는 점에 유의하십시오. 이 콘텐츠 __fish_user_data_dir
및 내역 파일의 형식은 문서화되어 있지 않으므로 향후 릴리스에서 사라지거나 변경될 수 있습니다. 위의 내용은 $fish_history
변수가 이외의 값으로 설정되지 않았다고 가정합니다 fish
.