我需要帮助弄清楚如何运行随机选择另一个命令或别名并运行它的 bash 别名或函数。
命令和别名以及函数别名的列表是事先已知的。列表的大小也是已知的。
我有多个以别名存储的 ascii 艺术变体。
例如 ascii-art-colorless-clear ascii-art-colorless-bg ascii-art-colored-clear ascii-art-colored-bg
我不想输入整个别名我只想输入 ascii-art 并随机选择其中一个别名。
在这种情况下,每个别名只是一个简单的 echo 命令
编辑:在Gilles Quenot的帮助下找到答案。需要的函数是 select-random-arguement-to-run() { $(shuf -e "$@" -n 1) }
这将选择一个随机别名并运行它
alias ascii-art="select-random-arguement-to-run "ascii-art-colorless-clear" "ascii-art-colorless-bg" "ascii-art-colored-clear" "ascii-art-colored-bg""
这需要之前定义的 select-random-arguement-to-run 函数在我的 bashrc 文件中。
我会使用gnu工具做什么:
代码:
定义一个函数:
调用函数:
建立在 Gilles Quenot 所说的之上(Gilles Quenot 的回答)
这是在我的 bash 别名/函数中起作用的答案
运行 $(run-random-command "echo hi" "echo bye" "ls") 将打印 bye 或 hi 到终端或运行 ls ,相当于
您可能知道, shuf 返回代码的文本,因此 $() 用于运行 shuf 返回的文本。