2011-08-31 44 views
2

我试图做一个很基本的东西,我虽然我应该能够管理自己所有的,但很可惜..DF -h的输出转换到一个数组中的Bash

我是什么试图做的是获取由“df -h”返回的值,并能够将这些值存储在bash脚本数组中。目的是将其与其他数据(如当前时间戳)结合使用,并将其输出到新文件/覆盖现有文件。

下面的两条命令给了我我想要的命令行,但我不能将我的生活加载到一个我可以迭代的数组中。

的followng给我以百分比的磁盘利用率每个磁盘:

df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }' 

和下面给我的磁盘路径:

df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print $6 }' 

但是,我不能指定的输出这成为一个我可以迭代的shell脚本中的一个变量。

任何想法和帮助将非常感谢!

回答

4

可以将输出分配给一个这样的数组:

arr=(`df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }'`) 

然后你可以遍历它例如像这样:

for var in "${arr[@]}" 
do 
    # things 
done 
+0

谢谢,工作就像一个魅力! –

2

您可以使用此。

#!/bin/bash 

arr=(`df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }'`) 
for v in "${arr[@]}" 
do 
    echo $v 
done 

(注意只使用bash的作品,而不是/ bin/sh的)

+0

嘿,Arun,如何使这段代码在/ bin/sh中工作? – Shekhar