题目一:求和练习:
#!/bin/bash
function sumarray {
local sum=0
local array
array=(echo "$@")
for value in ${array[]}
do
sum=$[$sum+$value]
done
echo $sum
}
wang=(1 2 3 4 5)
echo "初始数据为:${wang[
]}"
kai=echo ${wang[*]}
result=sumarray $kai
echo "结果是:$result"
exit 0
shell编程练习
解析:在这道题目里我注重练习函数的定义及使用,还有数组的使用,这些都是shell编程的重点难点。
本人在这道题目中犯下的错误:数组未加大括号,定义数组时未加小括号;这些应该注意!
题目二:将数组拆分加倍后合并输出
#!/bin/bash
function array {
local array1=(echo "$@")
local array2=(echo "$@")
local i
local elements=$[$#-1]
for (( i=0; i<=$elements; i++ ))
{
array2[$i]=$[ ${array1[$i]} 2 ]
}
echo "${array2[
]}"
}
wang=(1 2 3 4 5)
echo "初始数据为:${wang[]}"
kai=`echo ${wang[
]}
result=
array $kai
echo "结果是:${result[*]}"
![](https://s1.51cto.com/images/blog/201801/30/127f2176aaf433ae52d6201db2a8fae2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
解析: 这道题目考察点是围绕着数组的处理来的,不仅将数组拆分成单个变量,也要做到将数组合并为整体输出。
第三题:求阶乘
#!/bin/bash
function jj {
if [ $1 -eq 1 ];then
echo 1
else
local temp=$[$1-1]
local result=
jj $temp
echo $[$result * $1]
fi
}
read -p "请输入数字:" number
result1=
jj $number`
echo "结果是
解析:本题用来考察函数的递归,难度不大。
shell编程练习_第1张图片