linux中的shell 使用for循环来求n的阶层

shell的的有很多要注意的地方,程序逻辑简单,但是语法细节比较多




#!/bin/bash
fact(){
#if 后必须要有空格
if [[ $1<=1 ]]
then echo 1
else
local j=$(($1-1))
#local tmp=$( fact $1-1 ) #此处写法为错误的写法
#等号后不能有空格
local tmp=$( fact $j)
#local res=$(($tmp * $1 ))
#利用输出流 解决$? 最大值255的问题
echo $(( $tmp * $1 ))
fi

}
echo "enter your number:"
read num
echo "you put is :$num"
#等号后面不能有空格,否则报错,以下两句是等价的
rs=$(fact $num )
#rs=`fact $num`
echo $rs

需要注意的的是,local tmp=$( fact $1-1 )是错误的,不知道有没有更

正确的写法是

local j=$(($1-1))

local tmp=$( fact $j)

等号后不能有空格,如 rs= $(fact $num ) 将报错

#if 后面必须要有空格

if [[ $1<=1 ]]

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章