簡體   English   中英

Bash:變量的所有組合

[英]Bash: All combinations of variables

我想生成一組變量的所有組合。

我最終得到了以下內容:

a="A"
b="B"
c="C"
d="D"
e="E"
f="F"

echo {$a,$b,$c,$d,$e,$f} $a{$b,$c,$d,$e,$f} $b{$c,$d,$e,$f} $c{$d,$e,$f} $d{$e,$f} $e$f $a$b{$c,$d,$e,$f} $b$c{$d,$e,$f} $c$d{$e,$f} $d$e$f $a$b$c$d{$e,$f} $b$c$d$e$f $a$b$c$d$e$f

這會生成以下輸出:

A B C D E F AB AC AD AE AF BC BD BE BF CD CE CF DE DF EF ABC ABD ABE ABF BCD BCE BCF CDE CDF DEF ABCDE ABCDF BCDEF ABCDEF

在bash中有更簡潔和優雅的方式嗎?

隨着腳本

echo {'','a'}{'','b'}{'','c'}{'','d'}{'','e'}{'','f'}

你會得到

 f e ef d df de def c cf ce cef cd cdf cde cdef b bf be bef bd bdf bde bdef bc bcf bce bcef bcd bcdf bcde bcdef a af ae aef ad adf ade adef ac acf ace acef acd acdf acde acdef ab abf abe abef abd abdf abde abdef abc abcf abce abcef abcd abcdf abcde abcdef

雖然不按順序,但這可以滿足您的需求。 所以你可以使用

echo {'',$a}{'',$b}{'',$c}{'',$d}{'',$e}{'',$f}

如果您不希望在腳本中鍵入這么多{'',$x} ,您甚至可以使用eval

eval `echo echo "{'',$"{a..f}"}" | sed 's/ //2g'`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM