技术解析
df -lh 结果如下
➜ ~ df -lh
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1 112Gi 42Gi 70Gi 38% 10947483 18375779 37% /
我想把以上内容通过 CLI 界面的邮箱直接发送除去,但是发出去的结果就变成了一行显示了,不能保持现在的格式化输出。
哪位朋友有办法么?最好使用 mail -s
对了,我还要对里面的数据进行排序和处理,磁盘空间大于 50%的时候标记为红颜色。
的逗逼更少一点。附件的话一般服务商更不敢乱改了。考虑到想要加奇怪的高亮功能,我们用 HTML 吧:
自己爱怎么缩进怎么来。。
shopt -e
generate(){
set -f
local out i tok && readarray -t out < <(df -lh) || return;
printf '\n'
for i in "${out[@]}"; do
for tok in $i; do
if [[ $i == +([0-9])% && ${i%\%} < 50 ]]; then
printf '%s\t' "$i"
else
printf '%s\t' "$i"
fi
done
printf '\n'
done
set +f
}
懒得写查找替换实体了……自己小心点……另外这会打乱列的排列我懒得重新统计 format 先用 tab 糊上吧……
我个傻子。。 for tok in $i 直到第一个 done 里面所有的 $i 换成 $tok, ${i 换成 ${tok 。