当我执行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。为什么会这样?
答案 0 :(得分:3)
问题在于这一行:
if [ $USE>30 ]; then
>30
表示将命令的输出重定向到名为30
(不是40
)的文件。您需要引用>
字符以防止其特殊含义。此外,test
命令要求每个参数分开:
if [ $USE '>' 30 ]; then
但是,>
用于字母数字比较。对于数字比较,您需要使用`-gt:
if [ $USE -gt 30 ]; then