无法读取输出作为输入(linux)

时间:2014-06-14 08:25:23

标签: linux bash shell

我写了这段代码,它给了我"期望的整数表达式"错误

它无法读取输出

df -h > dfout.txt    
tail -3 dfout.txt > dfoutput.txt    
cat dfoutput.txt | while read Filesystem Size Used Avail Use Mounted    
do    
use_perc=$5
use_noperc="${use_perc%?}"    
if [ $use_noperc -gt $uservalue ]    
then    
echo "Filesystem $Filesystem is full."    
else    
echo "Filesystem $Filesystem is good."    
fi    
done < dfoutput.txt

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我认为问题在于你没有定义$uservalue

您可能希望在此脚本上改进一些内容:

尝试使用管道代替文件......例如:

df -ml | tail -n +2 | while read fs size used avail cap iused ifree paused mount

使用tail -n +2跳过第一行。

你应该得到这样的东西:

#!/bin/sh
uservalue=10
df -ml | tail -n +2 | while read fs size used avail cap iused ifree piused mount
do
  use_noperc="${cap%?}"
  if [ $use_noperc -gt $uservalue ]
  then
     echo "$fs Full"
  else
     echo "$fs Not full"
  fi
done