![Bash 自动完成:选择随机建议](https://linux22.com/image/197016/Bash%20%E8%87%AA%E5%8A%A8%E5%AE%8C%E6%88%90%EF%BC%9A%E9%80%89%E6%8B%A9%E9%9A%8F%E6%9C%BA%E5%BB%BA%E8%AE%AE.png)
基本上我想要一种让 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