我不断得到[:-ge:一元运算符的预期和[:-gt:一元运算符的预期。不知道这笔交易是什么。我已经尝试将变量放在引号中然后我得到[::整数表达式。这是我的剧本:
#!/bin/bash
read -p "How big is the compressed file size in bytes?: "$file_size;
if [ $file_size" -lt 5000 ]
then
echo "The compression ratio is 90%"
elif [ $file_size -ge 5000 ] && [ "$file_size" -le 50000 ]
then
echo "The compression ratio is 70%"
elif [ $file_size -gt 50000 ]
then
echo "The compresison ratio is 40%"
fi
答案 0 :(得分:3)
这一行
read -p "How big is the compressed file size in bytes?: "$file_size;
有多个问题。首先,在-p
参数和变量" name"之间需要一个空格。 (稍等一点):
read -p "How big is the compressed file size in bytes?: " $file_size;
其次,名称不应以$
为前缀(除非file_size
包含要设置的变量名称)。
read -p "How big is the compressed file size in bytes?: " file_size
如上所述,您的read
语句未设置名称,因此默认为$REPLY
。这意味着file_size
没有价值。