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


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.