Bashオートコンプリート:ランダムオファーを選択

Bashオートコンプリート:ランダムオファーを選択

基本的に、私はフィグレットがランダムなフォントを選択する方法を望んでいます。組み込みメソッドがないようです。または、少なくともマニュアルまたはWebでメソッドを見つけることができませんでした。

新しい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

関連情報