我在编写bash脚本的过程中,需要存储类似一个名称对应多个文件名的数据,类似c++的multi_map,bash如何处理类似的要求呢?
关系数组考虑过,但是关系数组一个键值只能对应一个值。
【以下回答由 GPT 生成】
答案:
在bash中,可以使用关联数组来实现存储多个文件名的数据。尽管关联数组的一个键只能对应一个值,但我们可以将这个值定义为一个数组。具体步骤如下:
bash declare -A fileMapping
bash files=(file1.txt file2.txt file3.txt) for file in ${files[@]}; do if [[ -v fileMapping[$file] ]]; then fileMapping[$file]+=" $file" else fileMapping[$file]="$file" fi done
bash for key in "${!fileMapping[@]}"; do echo "文件名: $key" echo "对应的文件数组: ${fileMapping[$key]}" done
这样,你就可以实现在bash shell编程中存储多个文件名的数据了。
注:以上代码仅供参考,实际情况可能需要根据具体需求进行适当修改。