为鱼壳中的循环拉链(在多个列表上循环)

问题描述 投票:0回答:1

我经常将临时循环直接写入命令行以运行一堆实验。这总是一次性的事情,所以编写一个脚本文件是不需要的开销。 不过,我想在一堆参数上拉开命令,我想在某些方面运行一个命令:

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
对定期互动的使用并不令人满意,但是我想我会生存下来。
    
shell loops fish
1个回答
4
投票
than than the执行

for exp in 256,lol 128,foo 32,bar echo $exp | read -d , arg1 arg2 ./bla --many-flags --name $arg2 --flag $arg1 end

子命令,每次您参考参数时,您都可以在循环的开头执行一次并将结果分配给变量(甚至来自for loop本身的变量)。
string split

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.