저는 BASH 스크립팅을 배우고 Homebrew를 사용하여 BASH를 버전 5.1로 업그레이드하고 있습니다. "y"를 입력하려고 하면 소리만 들립니다. 문자 "y"가 포함된 스크립트를 실행하면 "y: 키 시퀀스 종결자가 없습니다"라는 메시지가 나타납니다. 내 연구에 따르면 .inputrc 파일과 관련이 있는 것으로 나타났습니다. 파일에는 다음 4줄만 포함되어 있습니다.
set completion-ignore-case on
set show-all-if-ambiguous on
TAB: menu-complete
y
nano를 사용하여 마지막 줄에서 "y"를 제거하려고 시도했지만 파일을 디렉터리에 다시 쓸 수 없습니다. 마지막 "y"가 문제이므로 제거해야 한다고 생각하는 것이 맞습니까? 그렇다면 어떻게 해야 할까요? 그렇지 않다면 무엇을 더 시도할 수 있나요?
어떤 도움이라도 대단히 감사하겠습니다. 감사해요!
PS: zsh 쉘을 사용할 때는 이 문제가 발생하지 않습니다.
nano를 .inputrc에 다시 저장하려고 하면 "[쓰기용 파일을 열 수 없습니다: 권한이 거부되었습니다.]"라는 메시지가 나타납니다.
두 번째 주석이 무엇을 의미하는지 잘 모르겠습니다. sed --in-place....?
내 자신의 문제를 해결했습니다! 나는 .inputrc에 쓰기 권한을 얻기 위해 "sudo"를 사용합니다. 파일에서 "y" 문자를 제거한 다음 BASH 명령줄에서 "y" 문자를 사용할 수 있었습니다.
답변1
이 문자는 y
파일의 한 줄에 있어서는 안 되므로 .inputrc
제거해야 합니다.
이것이 가능하지 않다면 파일의 소유권이 잘못되었기 때문일 수 있습니다. 실수로 루트(또는 다른) 사용자로 파일을 생성한 경우 파일 소유권이 잘못되었을 수 있습니다.
현재 해당 사용자로 로그인되어 있고 sudo
일시적으로 권한을 상승시키는 도구에 액세스할 수 있다고 가정하면 소유권을 올바른 사용자로 다시 변경하는 올바른 방법은 다음을 사용하는 것입니다.
sudo chown "$(id -u):$(id -g)" ~/.inputrc
여기서 명령 id
은 사용자 및 그룹 ID를 검색한 다음 chown
파일의 사용자 및 그룹 소유권을 설정하는 데 사용됩니다.
그런 다음 편집기에서 파일을 열고 변경할 수 있습니다. macOS 시스템의 명령줄을 직접 사용하여 파일의 네 번째 줄을 삭제할 수도 있습니다.
/usr/bin/sed -i '' 4d ~/.inputrc