gpt4 book ai didi

bash - 三个变量的大括号范围扩展

转载 作者:行者123 更新时间:2023-11-29 09:48:49 26 4
gpt4 key购买 nike

我不确定我在标题和这个问题中是否使用了正确的术语,所以如果不正确请进行编辑。

在 bash 脚本中,我有三个数组,dirsfilesextensions。我怎样才能使包含 dirsfilesextensions 值的所有字符串组合?

我完全没有使用 Bash 的经验,但我确实尝试过这个,看看我是否可以只用两个数组来实现:

$ echo ${dirs[@]}
a b
$ echo ${files[@]}
c d
$ echo ${dirs[@]}{${files[@]}}
a bc d

我想从这个例子中得到的输出是 ac bc ad bd

编辑:我完全搞砸了这个例子并修复了它,以防你想知道发生了什么。

最佳答案

你不能用 {foo,bar} 语法来做到这一点; bash 仅在它在大括号之间看到 literal 逗号时才扩展它。 (我想您可以使用 eval,但这会带来麻烦。)

只需使用循环:

for dir in "${dirs[@]}"; do
for file in "${files[@]}"; do
for ext in "${extensions[@]}"; do
echo "$dir$file$ext"
done
done
done

关于bash - 三个变量的大括号范围扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com