bash 대화형 셸에서 명령으로 "입력된 텍스트"를 전달합니다.

bash 대화형 셸에서 명령으로 "입력된 텍스트"를 전달합니다.

사용자가 키바인딩|단축키를 누를 때 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"

관련 정보