사용자가 키바인딩|단축키를 누를 때 bash 쉘에서 사용자가 입력하는 모든 내용을 명령에 전달하고 싶습니다.
예를 들어 Ctrl+b가 바인딩이라고 가정합니다.
bind '"\C-b": "myCommand.sh"'
사용자는 를 입력 tar czv
한 다음 바로 가기 키를 눌러 문자열 "tar czv"를 mycommand.sh에 전달합니다.
이것이 가능한가? 내가 생각할 수 있는 유일한 방법은 에코하고 통과하는 것입니다.
bind '"\C-b": " \e[1~ echo '\''\e[4~'\''| mycommand.sh\n"'
더 좋은 방법이 있나요?
답변1
완전히 이해했는지는 모르겠지만, 귀하의 요구 사항(?)에 맞는 것 같습니다.
bind '"\C-b": "\C-a\C-kecho \'\'\\C-y\'\\' | myCommand.sh\n"'
인용이 까다로워집니다. ~/.inputrc에서는 더 쉽습니다.
"\C-b": "\C-a\C-kecho \'\C-y\' | myCommand.sh\n"
에코 외에도 스크립트가 명령줄 인수를 사용하도록 하는 것은 어떻습니까? 다시 ~/.inputrc에서:
"\C-b": "\'\C-amyCommand.sh \'\n"