首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有参数组合的启动脚本

带有参数组合的启动脚本
EN

Stack Overflow用户
提问于 2016-01-30 01:32:57
回答 2查看 104关注 0票数 0

我正在运行一些测试,并且我需要使用一些输入的组合来运行一个粒子shell脚本。

假设我有一个带有3个参数的脚本test.sh:A、B、C。

A可以是1或2,B可以是"aa“或"bb”,C可以是7或8

我想自动启动所有可能的组合,因此

代码语言:javascript
复制
./test 1 "aa" 7
./test 1 "aa" 8
./test 1 "bb" 7
./test 1 "bb" 8
./test 2 "aa" 7
./test 2 "aa" 8
./test 2 "bb" 7
./test 2 "bb" 8

有什么东西已经准备好并测试过了吗?

编辑:置换->组合

EN

回答 2

Stack Overflow用户

发布于 2016-01-30 02:13:11

外壳支撑扩展的一种有点难看的(Ab)使用允许这样做:

代码语言:javascript
复制
$ for i in {1,2}\ {aa,bb}\ {7,8}; do
    echo {$i}
done
{1 aa 7}
{1 aa 8}
{1 bb 7}
{1 bb 8}
{2 aa 7}
{2 aa 8}
{2 bb 7}
{2 bb 8}

但是,只有当单个值不包含空格或/glob元字符时,这才有效。

如果它们可以包含其中任何一个,那么这是不安全的,应该避免。

票数 3
EN

Stack Overflow用户

发布于 2016-01-30 01:35:44

你可以使用3 for循环:

代码语言:javascript
复制
for x in 1 2; do
  for y in "aa" "bb"; do
    for z in 7 8; do
      ./test $x $y $z
    done
  done
done

测试运行:

1 2中x的$;" aa“”bb“中的do >y;7 8中的do >z;do > echo $x $y $z >done;done 1 aa 7 1 aa 8 1 bb 7 1 bb 8 2 aa 7 2 aa 8 2 bb 7

现在可能有一种方法可以将它们压缩到一个for循环中,如果这是你的愿望,你可能想要等待另一个答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35090562

复制
相关文章

相似问题

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