실행을 통해 bash 와일드카드가 어떻게 작동하는지 보여줄 수 있습니까?

실행을 통해 bash 와일드카드가 어떻게 작동하는지 보여줄 수 있습니까?

나는 누군가에게 bash 와일드카드 작동 방법을 가르치고 있습니다. 나는 명령을 호출하기 전에 bash가 패턴을 확장하는 방법을 (가능하다면 일부 bash 디버깅 기능을 통해) 보여주고 싶습니다. 예를 들어 다음을 수행하고 싶습니다.

ls -l file*.txt

file*.txt그런 다음 bash가 확장된 콘텐츠를 표시하기를 원합니다 .

ls -l file1.txt file2.txt file3.txt file4.txt

나는 이것을 스크립트에서 사용하는 방법을 알고 있지만 bash -x대화형 셸에서 수행하는 것을 선호하므로 스크립트 아이디어를 소개할 필요가 없습니다. 이것을 할 수 있는 방법이 있나요?대화형 모드?

답변1

간단히 전체 명령을 에코할 수 있습니다.

echo ls -l file*.txt

답변2

글쎄, 이것은 기본적으로 내 설정에서 일반적 으로 비슷한 동작을 .inputrc얻는 것입니다 .zshbash

set show-all-if-unmodified on
set show-all-if-ambiguous on

위의 줄을 입력 하면 됩니다 ~.inputrc. 탭과 같은 작업을 수행하면 ls *.txt모든 것이 제공되고 일치하는 파일이 출력됩니다.

편집: 인용문 man bash:

불분명한 경우 모두 표시(해제) 이는 완성 함수의 기본 동작을 변경합니다. "켜기"로 설정하면 완료 가능한 단어가 여러 개 있는 경우 벨을 울리는 대신 일치하는 항목이 즉시 나열됩니다.

수정되지 않은 경우 모두 표시(해제) 이는 "모호한 경우 모두 표시"와 유사한 방식으로 완성 함수의 기본 동작을 변경합니다. "on"으로 설정하면 부분 완성(공통 접두사를 공유하지 않는 가능한 완성) 없이 여러 가능한 완성이 있는 단어는 벨을 울리는 대신 즉시 일치 항목이 나열됩니다.

EDIT2: 예제 출력

$ ls *
books    dev    music   templates
$ ls *

다음을 확장하려고 하면(다음 인수를 완성하려고 시도하므로 ~/some/other/folder) 작동하지 않습니다.

$ cd * ~/some/other/folder

관련 정보