第1部分)我的脚本允许命令行选项-r,-c和-t分别用于矩形,圆圈和梯形。矩形选项需要两个参数,即长度和宽度。圆选项需要一个参数,半径。梯形选项需要三个参数,即高度和每个平行基础。第2部分)脚本允许选项-f。当此选项与-r,-c或–t结合使用时,每个选项以一个参数为输入文件的名称。输入值将一次从输入文件中读取一行,并打印到STDOUT的区域。读取–1的值时,脚本应终止。
我的第1部分和第2部分都完成了,除了读取-1时终止脚本。我要在第二部分中要做的是矩形,当我给它一个输入文件时,是要检查该文件是否在每行中有2个值。如果它没有2个值,则ECHO"文件的数据集无效"。与Circle相同,它不应接受任何或多或少的值在TH输入文件和梯形3中的值。
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"
在文件中仅为-1,而回声$?如果存在-1,则该为零,如果不存在-1,则为1。
检查编号。通过的值执行以下
SEPERATOR=" ";
#Assumed that seperator is space in your case
#remove all ending spaces
sed -i 's/ *$//g' $filename
#take the count of columns seperated by spaces
cat $filename | grep -o " " | wc -l
#this value +1 gives you the total values in the file
希望这个地狱