경고 : 라인 편집이 활성화되지 않았습니다


21

bind -x '"\C-r"':reset터미널을 지우는 데 유용한 명령 을 찾았 지만 간단한 bash 스크립트를 만들고 싶었습니다.

#!/bin/bash
bind -x '"\C-r"':reset

산출:

alfred@alfred-laptop:~/bash$ ./bind 
./bind: line 2: bind: warning: line editing not enabled

누군가 설명해 주시겠습니까?

  1. 이 문제를 어떻게 해결할 수 있습니까?
  2. 무슨 warning: line editing not enabled뜻입니까?

superuser.com/questions/122911/bash-reset-and-clear-commands/…echo -e '\0033\0143' 덕분에 이미이 문제를 해결했지만 여전히이 오류의 의미와 해결 방법을 알고 싶습니다. 많은 감사합니다.
— Alfred

@squircle은 개선에 감사드립니다. 당신은 또한 내 질문에 대한 답을 알 수 있습니까 : P?
— Alfred

4
(실제로 대답하지 않았기 때문에) 레코드에 대해서만 : "줄 편집이 활성화되지 않았습니다"라는 메시지가 나타납니다. 스크립트를 호출 할 때 생성되는 bash에서는 단순히 활성화되어 있지 않으며 직접 수행해야하기 때문입니다. 를 삽입하여 .eg set -o emacs또는 set -o vi스크립트로 (전과 bind물론,).
— Elmar Zander

답변:


10

해당 스크립트를 소싱해야합니다. 수행 . ./bind또는 source ./bind현재 세션에서 활성 바인딩 해당 키를 만들 수 있습니다.

정상적으로 실행하면 터미널이 없으므로 오류 메시지가 표시됩니다. 또한 작동하는 경우 스크립트 기간 동안 만 활성화됩니다.

해당 키 바인딩을 지속적으로 유지하려면 해당 명령을에 추가하십시오 ~/.bashrc.


1. 지속성에 대해 알고 있습니다. 2. 귀하의 예는 효과가 있지만 명령을 실행하는 복잡성을 추가합니다 (제 생각에는). 나는 지금 이것을 알고 있다고 생각하지만, 이것없이 실행할 수있는 간단한 bash 파일을 갖고 싶습니다 source.
— Alfred

2
@alfredwesterveld : 당신이하지 않으려면 당신이 쉘을 시작하지만, 당신이 사용하지 않고도 언제든지 활성화 할 수 할 때마다로드 결합 source또는 (점 ., 당신에 함수를 추가) ~/.bashrc: rbind () { bind -x '"\C-r"':reset; }다음 입력 할 수 있습니다 rbind에 의해 명령 자체와 바인딩이 활성화됩니다.
— 추후 공지가있을 때까지 일시 중지되었습니다.

9

비슷한 메시지를 받았지만 대화 형 (로그인) 쉘 외부에서 실행되는 스크립트에서 온 것입니다. CGI 스크립트를 통해 실행되는 쉘 스크립트였습니다. 내 메시지는 :

/home/richard/.bash_profile: line 4: bind: warning: line editing not enabled

실제로 4 행에 없었지만 bind해당 파일 의 유일한 내용 은 다음과 같습니다.

bind 'set completion-ignore-case on'

물론 라인 편집이 활성화 된 경우, 즉 대화식 쉘인 경우에만 의미가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.