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

(2)在程序开始后立即判断n的合法性,即是否有参数,若有是否为正整数,若非法请给错误提示;
(3)最后输出计算的结果,并在程序最后使用echo命令输出学号。
这个应该怎么做

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 学号

温馨提示:答案为网友推荐,仅供参考
相似回答