在Bash中将df-h的输出转换为数组
我正在尝试做一件非常基本的事情,我认为我应该能够自己管理所有的事情,但是唉 我试图做的是获取“df-h”返回的值,并能够将这些值存储在bash脚本数组中。目的是将其与其他数据(如当前时间戳)组合,并将其输出到新文件/覆盖现有文件 以下两个命令在命令行中给出了我想要的内容,但我无法将输出加载到可以迭代的数组中 下面给出了每个磁盘的磁盘利用率百分比:在Bash中将df-h的输出转换为数组,bash,shell,Bash,Shell,我正在尝试做一件非常基本的事情,我认为我应该能够自己管理所有的事情,但是唉 我试图做的是获取“df-h”返回的值,并能够将这些值存储在bash脚本数组中。目的是将其与其他数据(如当前时间戳)组合,并将其输出到新文件/覆盖现有文件 以下两个命令在命令行中给出了我想要的内容,但我无法将输出加载到可以迭代的数组中 下面给出了每个磁盘的磁盘利用率百分比: df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }' 下面给出了磁盘路径:
df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }'
下面给出了磁盘路径:
df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print $6 }'
但是,我无法将此命令的输出分配到shell脚本中可以迭代的变量中
任何想法和帮助都将不胜感激 您可以将输出分配给如下数组:
arr=(`df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }'`)
for var in "${arr[@]}"
do
# things
done
然后您可以对其进行迭代,例如:
arr=(`df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }'`)
for var in "${arr[@]}"
do
# things
done
你可以用这个
#!/bin/bash
arr=(`df -h | grep -vE "^Filesystem|shm|boot" | awk '{ print +$5 }'`)
for v in "${arr[@]}"
do
echo $v
done
(注意:仅适用于bash,而不适用于/bin/sh)