在鱼壳中循环切换循环(在多个列表上循环)

时间:2018-01-03 08:35:07

标签: shell loops fish

我经常在命令行中直接编写ad-hoc循环来运行一系列实验。它总是一次性的,因此为它编写脚本文件是不必要的开销。

但是,我常常要压缩一堆参数,我想运行一个类似下面的命令:

for arg1,arg2 in 256,lol 128,foo 32,bar
    ./bla --many-flags --name $arg2 --something $arg1
end

我可以使用string(旧版本中为tr delim \n)来实现类似但非常脆弱的鱼类,如下所示:

for exp in 256,lol 128,foo 32,bar
    ./bla --many-flags --name (string split ',' $exp)[2] --flag (string split ',' $exp)[1]
end

我想知道有没有人知道更好的方法,每次使用参数时都不需要繁琐的子命令(一个参数甚至可以多次使用),更糟糕的是,任意的分隔符会导致各种问题吗?

理想情况下,我甚至可以像let一样使用它:

for arg1,arg2 in 256,lol
    ./bla --many-flags --ame $arg2 --something $arg1
end

0 个答案:

没有答案