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

温馨提示:内容为网友见解,仅供参考
无其他回答

2、设计一个shell程序计算n的阶乘。要求:(15分) (1) 从命令行接收参数n...
done echo "和 is: $sum1"echo "乘积 is: $sum2"

linux 设计一个shell程序计算n的阶乘
if [ -z $1 ];then echo Please Usage:$0 num exit 1 fi counter=$1 factorial=1 while [ $counter -gt 0 ]do ((factorial=factorial * counter ))((counter--))done echo $factorial

在Linux中shell编程求M-N的阶乘,M、N用户输入
echo "N:"read N 判断N是否非空且小于N的整数 if [ -z $N ]then echo "N 必须非空"exit 1 elif ! [[ $N =~ ^-?[0-9]*$ ]]then echo "N 必须为整数"exit 1 elif [ $M -le $N ]then echo "N必须小于M"exit 1 fi let "base = M-N"result=1 阶乘函数,引入result实...

shell程序,根据输入的参数n,计算得阶乘
exit 1 fi echo "$1! = $result"exit 0

编写Shell程序,实现功能:计算N!,使用函数的方法实现.
2012-06-08 2、设计一个shell程序计算n的阶乘。要求:(15分) (1) 从命令... 9 2013-07-13 1. 设计一个Shell程序,在\/userdata目录下建立50个目录,... 29 更多关于shell程序的知识 > 正在求助 换一换 回答问题,赢新手礼包 苦等2分钟: 为什么恒大踢不过权健 回答 苦等7分钟: Python怎样解决高并发...

1:编辑shell脚本factorial.sh,计算1到10的阶乘。2:编写shell脚本max.s...
!\/bin\/sh#factorial.shfactorial_1(){num=$1sum=1for((i=0;i<$num;i++))doi=`expr $i + 1`sum=`expr $sum \\* $i`doneecho "$num 的阶乘是 $sum"}for i in {1..10}dofactorial_1 $idone#!\/bin\/bash#max.shmp=$*echo $mp|sed 's\/ \/\\n\/g'|sort -n >uuu.$$tail ...

5、shell编程综合设计 编写一个显示菜单的shell程序,利用函数实现简单...
while :doecho "===** (1)计算1到n的奇数之和; *** (2)计算1到n的阶乘; *** (3)计算1到n的所有质数; *** (4)退出程序。 **==="read -p "Please enter function select and number:" m n[ $m -eq 4 ]&&exitif echo $m|grep "^[...

有限数字的排列方式的计算
第二轮:7,8,10,9->7,8,10,9->7,8,10,9(交换0次)第一轮:7,8,10,9->7,8,9,10(交换1次)循环次数:6次交换次数:3次上面我们给出了程序段,现在我们分析它:这里,影响我们算法性能的主要部分是循环和交换,显然,次数越多,性能就越差。从上面的程序我们可以看出循环的次数是固定的,为1+2+...+n-...

相似回答