r
셸에 내장된 유틸리티를 zsh
옵션 없이 사용하면 명령 기록에 있는 최신 명령을 다시 실행합니다.
이것의 문제는 기록을 공유하는 여러 셸 세션이 있는 경우( SHARE_HISTORY
셸 옵션이 설정된 경우) 실수로 "비로컬" 셸 세션에서 명령을 실행하는 실수를 저지르기 쉽다는 것입니다. 이는 사용을 r
잠재적으로 위험하게 만듭니다.
질문:r
현재 셸 세션의 로컬 기록 이벤트만 고려 하도록 동작을 변경 하거나 rl
로컬 이벤트만 고려하는 별도의 별칭이나 함수를 작성하려면 어떻게 해야 합니까?
(가장 최근 명령을 기억하고 편집하지 말고 실행하십시오) r
와 동일해야 하기 때문에 아마도 동일한 작업을 사용 하거나 수행할 것이라고 생각했지만 어떤 이유로든 가장 최근 명령에서만 작동하는 것 같습니다.fc -e -
r -L
fc -e - -L
글로벌기록 이벤트는 현재 셸 세션에서 발생합니다. 그렇지 않은 경우 쉘은 오류를 보고합니다 fc: no matching events found
.
zsh
zsh-5.8-0-g77d203f
zsh-5.8p0
OpenBSD 6.8 패키지 버전 5.8() 이 여기서 사용됩니다 .
접선적으로 관련된 질문:
답변1
r -L
메일링 리스트에 물어보니 예상대로 동작하지 않는다는 사실이 버그로 여겨졌다 zsh-users
.
이 오류는 수정되었습니다.2021년 2월 18일, Shell의 Git 개발 브랜치:
commit 6bef719302d6db33c63fb6f2636986dff1941ac2
Author: Peter Stephenson <retracted>
Date: Thu Feb 18 21:37:08 2021 +0000
users/26509: fix for r -L
fc with the -L option should ignore remote entires, rather than
reading them and treating them as an error.