【发布时间】:2014-05-23 23:48:43
【问题描述】:
我正在尝试创建设备中包含的分区数组,这是我的尝试,但它似乎不起作用。
#!/bin/bash
DISK=sda
declare -a PARTS=("$(awk -v disk=$DISK '$4 ~ disk {printf "[" $2 "]=\"" $3 "\" "}' /proc/partitions)")
这些命令本身似乎有效:
$ DISK=sda
$ awk -v disk=$DISK '$4 ~ disk {printf "[" $2 "]=\"" $3 "\" "}' /proc/partitions
[0]="7987200" [1]="7986408"
$ declare -a PARTS=([0]="7987200" [1]="7986408" )
$ echo ${PARTS[0]}
7987200
$ echo ${PARTS[1]}
7986408
但不合并:
$ DISK=sda
$ declare -a PARTS=($(awk -v disk=$DISK '$4 ~ disk {printf "[" $2 "]=\"" $3 "\" "}' /proc/partitions))
$ echo ${PARTS[0]}
[0]="7987200"
$ echo ${PARTS[1]}
[1]="7986408"
非常感谢任何帮助!
【问题讨论】:
-
我会尽量避免使用数组。移植、调试和维护困难。你能做类似
for part in $(awk...)ofawk ... | while read part; do的事情吗