터미널에서 스크립트의 이전 줄로 돌아가는 방법은 무엇입니까? mkdir dir 이전 줄로 갈 수있는

스크립트를 작성하려고하는데 여기에 붙어 있습니다. 코드를 참조하십시오!

aug@august:~/play$ for i in {1..100..4}
> do
> echo "august"
> touch august $i+$2
> mkdir dir

이전 줄로 갈 수있는 방법이 있습니까? 나는 잘못된 유형이 있음을 의미 touch august $i+$2합니다. ENTER키를 눌렀 으므로 새 줄을갔습니다. 이전 줄로 돌아가려면 어떻게해야합니까?



답변

bash의 명령 줄 편집기는 이것을 지원하지 않습니다. anwar이 제안하거나 세미콜론으로 구분 된 한 줄의 모든 것을 스크립트 파일에 넣습니다.

참고로, zsh이것에 도움이되는 기능이 있습니다. zsh라인 편집기 ( zle)보다 완벽한 기능을 갖춘 편집기와 여러 줄 명령을 내 이동을 지원합니다. 명령을 처리하기에 너무 길어지면 zle기본 제공 기능인 edit-command-line을 사용하여 자주 사용하는 편집기에서 명령 행을 엽니 다. 그것은 일반적으로 묶이지 않습니다.

bindkey "^[e" edit-command-line

Alt-e 이제 활성화하고 저장하고 종료하여 명령 행으로 돌아가십시오.


답변

을 누르고 Enter오류 메시지가 표시되면 기록으로 돌아갈 수 있습니다.

키보드 의 키를 누르면 오타가 수정됩니다. 키 를 누르면 터미널에 다음 줄이 표시됩니다.

for i in {1..100..4}; do echo "august"; touch august $i+$2; mkdir;

잘못 입력 된 내용을 수정하고 명령 끝에를 touch august $i+$2추가하십시오 done.

그런 다음 Enter키를 누르십시오. 문제가 해결 될 것입니다.


답변

여기 에 설명 된 것처럼 bash에는 매뉴얼에 명시된대로 역사를 조작하는 명령이 있습니다. 그들 중 하나는입니다 edit-and-execute-command.

임시 파일에 이미 입력 한 명령으로 편집기가 열리고 이전 행을 쉽게 수정할 수 있습니다. emacs 모드 에서는 일반 모드 C-xC-e에서을 눌러 vi 모드를 수행 할 수 있습니다 v.

편집 및 실행 명령 (C-xC-e)

현재 명령 행에서 편집기를 호출하고 결과를 쉘 명령으로 실행하십시오. Bash는 $ VISUAL, $ EDITOR 및 emacs를 순서대로 편집기로 호출하려고 시도합니다.


답변

이것이 나를 위해 일한 것입니다.

CTRLC현재에서 + command. 그런 다음를 누릅니다 . 이제 arrow buttons 또는 로 이동하여 원하는 줄을 편집 할 수 있습니다 .

행운을 빕니다…


답변