输出是
/ ext4 /boot ext2 tank zfs
在每一行上,分隔符是一个空格.我需要一个关联数组,如:
"/" => "ext4","/boot" => "ext2","tank" => "zfs"
怎么在bash中完成?
如果命令输出在文件文件中,则:
$declare -A arr=(); while read -r a b; do arr["$a"]="$b"; done <file
或者,您可以将数据直接从命令cmd读取到数组中,如下所示:
$declare -A arr=(); while read -r a b; do arr["$a"]="$b"; done < <(cmd)
构造<(...)是过程替换.它允许我们从命令读取就像我们从文件中读取一样.注意两者之间的空间<是必不可少的. 您可以使用declare -p验证数据是否已正确读取:
$declare -p arr declare -A arr='([tank]="zfs" [/]="ext4" [/boot]="ext2" )'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。