首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机运行多个命令的bash别名

随机运行多个命令的bash别名
EN

Unix & Linux用户
提问于 2022-11-07 17:38:38
回答 2查看 100关注 0票数 0

我需要帮助弄清楚如何运行bash别名或函数,该函数随机选择另一个命令或别名并运行它。

命令、别名和函数别名的列表是事先知道的。列表的大小也是已知的。

我有多种变体的ascii艺术存储在别名。

艺术-艺术-无色-透明-艺术-无色-bg-艺术-彩色-透明-艺术-彩色-bg

我不想键入整个别名,我只想键入ascii-art,并让其中一个别名被随机选择。

在本例中,每个别名只是一个简单的echo命令。

编辑:在吉尔斯·奎诺的帮助下找到答案。所需的函数是select-随机论证-运行(){ $(shuf -e "$@“-n 1) }}

这将选择一个随机别名并运行它。

代码语言:javascript
复制
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-随机-辩论-运行函数。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-11-07 22:32:41

建在吉尔斯·奎诺所说的基础上,(吉尔斯·奎诺的回答)

这是在bash别名/函数中起作用的答案。

代码语言:javascript
复制
run-random-command() {
    $(shuf -e "$@" -n 1)
}

运行$(运行-随机命令"echo hi“"echo拜”" ls ")将打印到终端或运行ls,并相当于

代码语言:javascript
复制
$(shuf -e "echo hi" "echo bye" "ls" -n 1)

正如您可能知道的,shuf返回代码的文本,因此$()用于运行shuf返回的文本。

票数 0
EN

Unix & Linux用户

发布于 2022-11-07 18:09:07

我将使用gnu工具做什么:

代码语言:javascript
复制
$ cat commands.list
rcp
scp
ssh

代码:

代码语言:javascript
复制
$ shuf commands.list | head -n1
ssh # random command

定义一个函数:

代码语言:javascript
复制
$ myfunc(){ shuf commands.list | head -n1; }

要调用该函数:

代码语言:javascript
复制
$ myfunc
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/723998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档