运行脚本以检查磁盘使用情况会创建一个新文件。为什么?

时间:2016-10-13 11:06:11

标签: linux shell

当我执行script.sh文件时,其内容如下

USE=`df -h "/scratch/" | tail -1 | awk '{ print $4 }' | sed s/%//g`
if [ $USE>30 ]; then
   echo "The limit has exceeded"
else
   echo "The limit is not exceeded"
fi

它在执行它的目录中创建一个新文件40。为什么会这样?

1 个答案:

答案 0 :(得分:3)

问题在于这一行:

if [ $USE>30 ]; then

>30表示将命令的输出重定向到名为30(不是40)的文件。您需要引用>字符以防止其特殊含义。此外,test命令要求每个参数分开:

if [ $USE '>' 30 ]; then

但是,>用于字母数字比较。对于数字比较,您需要使用`-gt:

if [ $USE -gt 30 ]; then