第 1 部分)我的脚本允许命令行选项 -r、-c 和 -t 分别用于矩形、圆形和梯形。矩形选项需要两个参数,长度和宽度。circle 选项需要一个参数,即半径。梯形选项需要三个参数,高度和每个平行底。第 2 部分)脚本允许选项 -f。当此选项与 -r、-c 或 -t 一起使用时,每个选项都有一个参数,即输入文件的名称。输入值将一次从输入文件中读取一行,并将区域打印到标准输出。当读取值 –1 时脚本应该终止。
我已经完成了第 1 部分和第 2 部分,但脚本在读取 -1 时终止。我想在第二部分做的是矩形,当我给它一个输入文件时,是检查该文件是否在每一行中有 2 个值。如果它没有 2 个值,则回显“文件具有无效的数据集”。与圆形相同,它不应接受在输入文件的每一行和梯形 3 中大于或小于 1 的任何值。
filename=$OPTARG;;
while read -a line
do
if (( $choice == 1 ))
then
Area=`echo "scale=3; ${line[0]}*${line[1]}" | bc`;
echo "Area of the rectangle is $Area";
fi
if (( $choice == 2 ))
then
Pi=3.1416
Area=`echo "scale=3; ${line[0]*$line[0]}*$Pi" | bc`;
echo "Area of the circle is $Area";
fi
if (( $choice == 3 ))
then
Area=`echo "scale=3; (${line[0]}+${line[1]})/2*${line[2]}" | bc`;
echo "Area of the trapezoid is $Area";
fi
done < "$filename"