Shell脚本输出异常求助:新手薪资计算脚本结果错误排查
你的Shell脚本问题分析与修正
问题根源
你在使用bc进行数值计算时,没有正确引用Shell变量。Shell中引用变量必须加$前缀,否则bc会把basic_sal、da这类变量名当作未定义的符号,默认取值为0,导致所有计算结果都是0。
修正后的脚本
echo Enter basic salary read basic_sal echo Basic salary is $basic_sal da=`echo 0.4 \* $basic_sal | bc` echo Dearness allowance is $da hra=`echo 0.2 \* $basic_sal | bc` echo House rent allowance is $hra gross_sal=`echo $basic_sal + $da + $hra | bc` echo Gross salary is $gross_sal
关键修正点
- 计算da时:将
basic_sal改为$basic_sal - 计算hra时:将
basic_sal改为$basic_sal - 计算gross_sal时:将
basic_sal、da、hra分别改为$basic_sal、$da、$hra
测试输出示例
输入2000后,正确输出应为:
Enter basic salary 2000 Basic salary is 2000 Dearness allowance is 800.0 House rent allowance is 400.0 Gross salary is 3200.0
内容的提问来源于stack exchange,提问作者PTK
相关产品推荐
相关产品推荐

