我需要帮助弄清楚如何运行bash别名或函数,该函数随机选择另一个命令或别名并运行它。
命令、别名和函数别名的列表是事先知道的。列表的大小也是已知的。
我有多种变体的ascii艺术存储在别名。
艺术-艺术-无色-透明-艺术-无色-bg-艺术-彩色-透明-艺术-彩色-bg
我不想键入整个别名,我只想键入ascii-art,并让其中一个别名被随机选择。
在本例中,每个别名只是一个简单的echo命令。
编辑:在吉尔斯·奎诺的帮助下找到答案。所需的函数是select-随机论证-运行(){ $(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""它需要在我的bashrc文件中定义的select-随机-辩论-运行函数。
发布于 2022-11-07 22:32:41
建在吉尔斯·奎诺所说的基础上,(吉尔斯·奎诺的回答)
这是在bash别名/函数中起作用的答案。
run-random-command() {
$(shuf -e "$@" -n 1)
}运行$(运行-随机命令"echo hi“"echo拜”" ls ")将打印到终端或运行ls,并相当于
$(shuf -e "echo hi" "echo bye" "ls" -n 1)正如您可能知道的,shuf返回代码的文本,因此$()用于运行shuf返回的文本。
发布于 2022-11-07 18:09:07
我将使用gnu工具做什么:
$ cat commands.list
rcp
scp
ssh代码:
$ shuf commands.list | head -n1
ssh # random command定义一个函数:
$ myfunc(){ shuf commands.list | head -n1; }要调用该函数:
$ myfunchttps://unix.stackexchange.com/questions/723998
复制相似问题