화살표 키에 여러 줄 명령이 표시되도록 하는 방법은 무엇입니까?

화살표 키에 여러 줄 명령이 표시되도록 하는 방법은 무엇입니까?

방금 터미널에서 다음 명령을 실행했습니다.

$ while read i
> do
> echo $i
> done
4
4

그러나 위쪽 화살표 기록 기능을 사용하여 명령을 다시 실행하려고 하면 다음과 같은 명령의 일부만 표시됩니다.

$ while read i

KSH에서 위쪽 화살표를 사용하여 전체 while 루프를 인쇄하는 방법은 무엇입니까?

답변1

원본 ksh의 줄 편집은 매우 제한적이었습니다. zsh 또는 bash와 같은 "클론" 중 하나를 사용할 수 있습니다.

ksh93의 경우 또는 모드 대신 vi편집 모드( )를 사용하면 여러 줄 명령을 호출해도ksh -o viemacsgmacs일하다, 개행은 로 렌더링되지만 ^J이는 pdksh모든 편집 모드와 그 파생 모드에서도 얻을 수 있습니다.

Ctrl+VCtrl+J한 줄에 여러 줄의 코드를 입력한 다음 emacs나중에 모드에서도 호출할 수 있도록 이러한 개행 문자를 입력할 수도 있습니다 .

또 다른 옵션은 fc실제 텍스트 편집기에서 이전 줄을 편집하는 것입니다.

fc while

include $FCEDIT후에 실행 합니다 . 그런 다음 편집기에서 저장하고 종료합니다.exwhile


¹ 특정 동작( 입력으로 사용 또는 호출 ) 에 의존하는 경우 더 가깝게 동작하게 만드는 모의 모드 zsh도 있습니다 .kshkshkshemulate kshzshksh

관련 정보