Bash 자동 완성: 무작위 제안 선택

Bash 자동 완성: 무작위 제안 선택

기본적으로 나는 Figlet이 임의의 글꼴을 선택하는 방법을 원합니다. 내장된 메소드가 없는 것 같습니다. 또는 적어도 매뉴얼이나 웹에서 메소드를 찾지 못했습니다.

새 xterm을 열 때마다 이 메시지가 나타나길 원합니다. 이는 figlet -f <a font> Hello World bash.rc에 추가하기 쉽습니다.

그러나 나는 또한 글꼴이 임의적이기를 원합니다. <a font>자동 완성 제안에서 무작위로 선택하는 방법이 있는지 궁금합니다 .

답변1

Bash에는 Figlet의 자동 완성 기능이 없는 것 같습니다. 그렇더라도 특정 컨텍스트에 대한 완성을 생성하는 일반적인 방법은 없다고 생각합니다. 완성 코드가 해당 특정 명령에 어떻게 적용되는지 알아야 합니다.

그러나 완료 코드를 참조하지 않고 함수를 나열할 수 있습니다. 본뜨다zsh 완료 코드, 글꼴은 *.flf표시된 디렉토리의 파일 입니다 figlet -I2. 글꼴 이름은 파일 기본 이름이지만 실제로는 파일의 전체 경로를 전달할 수 있습니다.

figlet_fonts=("$(figlet -I2)"/*.flf)

이제 남은 일은 이 배열에서 임의의 요소를 가져오는 것입니다. 특수 변수RANDOM읽을 때마다 난수가 생성됩니다. 배열의 크기로 나누고 나머지를 취하여 임의의 배열 인덱스를 얻습니다. (배열의 시작 부분이 약간 어긋나 있는데 여기서는 중요하지 않습니다.)

figlet -f "${figlet_fonts[$RANDOM % ${#figlet_fonts[@]}]}" Hello world

관련 정보