Linux操作,8、设计一个shell程序计算n的阶乘。要求: (1)从命令行接收参数n;

(2)在程序开始后立即判断n的合法性,即是否有参数,若有是否为正整数,若非法请给错误提示;(3)最后输出计算的结果,并在程序最后使用echo命令输出学号。这个应该怎么做... (2)在程序开始后立即判断n的合法性,即是否有参数,若有是否为正整数,若非法请给错误提示;
(3)最后输出计算的结果,并在程序最后使用echo命令输出学号。
这个应该怎么做
展开
 我来答
albumin
2017-01-02 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2389万
展开全部
if [ -z $1 ];then 
echo 你没有输入参数
exit 1
fi
case $1 in 
*[!0-9]*) echo 你输入的不是合法数字
         exit 1;;
*) n=$1;;
esac
if [ $n -le 0 ];then 
echo 你输入的不是正整数
exit 1 
fi
frac=1
while [ $n -gt 0 ]
do 
frac=$((frac * n))
n=$((n - 1))
done
echo 阶乘为:$frac
echo 学号
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式