출력을 다음 입력 라인으로 보내는 방법은 무엇입니까?

출력을 다음 입력 라인으로 보내는 방법은 무엇입니까?

이것은 내 조각입니다 alias hst="history 1 -1 | cut -c 8- | uniq | fzf ". 내가 실행하면 hst 출력은 다음과 같습니다.

$ ~ hst
(the output from hst)
$

이것이 내가 원하는거야

$ ~ hst
$ (the output from hst)

$ ~ hst
vi .zshrc
$

~해야 한다

$ ~ hst
$ vi .zshrc

이 문제를 어떻게 해결하나요? (또는 스크립트를 향상시킵니다)

답변1

사용자가 입력한 것처럼 쉘 입력 스택에 무언가를 추가하려면 다음을 사용할 수 있습니다 print -z.

hst() {
  local cmd
  cmd=$(print -rNC1 -- ${(u)history} | fzf --read0 "$@") &&
    print -rz -- $cmd
}

관련 정보