1、建立文件func2.sh,输出文件内容各行及行数
脚本:
#!/bin/bash
echo -n "请输入一个文件名及路径:"
read FILE
statisfile(){
local i=0
while read line
do
let i++
echo "$i $line"
done < $FILE
echo "$FILE有$i行"
}
echo "调用shell函数statisfile()"
statisfile
命令:. ./func2.sh
结果:
2、建立文件func3.sh,判断文件是否存在
脚本:
#!/bin/bash
echo -n "请输入一个文件名及路径:"
read FILE
checkfileexist(){
if [ -f $FILE ];then
return 0
else
return 1
fi
}
echo "调用shell函数checkfileexist()"
checkfileexist
if [ $? -eq 0 ];then
echo "$FILE存在"
else
echo "$FILE不存在"
fi
命令:. ./func3.sh
结果:
3、建立文件func5.sh,计算阶乘
脚本:
#!/bin/bash
power(){
p=1
i=0
while [ "$i" -lt $2 ]
do
let "p=p*$1"
let "i=i+1"
done
echo "$1 ^ $2 = $p"
}
power $1 $2
命令:. ./func5.sh 2 3
结果:
4、指定位置参数值
脚本:
#!/bin/bash
echo "重新设置位置参数值前各位置参数的值:"
cnt=1
for i in $@
do
echo "\$$cnt=$i"
let "cnt++"
done
set 1 2 Linux Windows
echo "重新设置位置参数值后各位置参数的值:"
cnt=1
for i in $@
do
echo "\$$cnt=$i"
let "cnt++"
done
命令:. ./set1.sh a b c d 1 2
结果:
5、给出下列脚本执行结果
脚本:
#!/bin/bash
until [ $# -eq 0 ]
do
echo "\$1=$1,参数总数=$#"
shift
done
命令:. ./shift1.sh 1 2 s1 s2
结果:
6、给出下列脚本执行结果
脚本:
#!/bin/bash
until [ $# -le 1 ]
do
echo "\$1=$1,参数总数=$#"
shift 2
done
命令:. ./shift2.sh 1 2 s1 s2
结果:
7、给出下列脚本执行结果
脚本:
#!/bin/bash
Total=0
expstr=""
until [ $# -eq 0 ]
do
let "Total=Total+$1"
if [ "$expstr" = "" ];then
expstr=$1
else
expstr=$expstr"+$1"
fi
shift
done
echo $expstr"="$Total
命令:. ./shift3.sh 3 4 5 6
结果:
8、建立递归函数文件recur1.sh求阶乘
脚本:
#!/bin/bash
fac(){
local n=$1
if [[ $n -le 0 ]];then
f=1
else
fac $((n-1))
t=$f
n=$n
f=$((n*t))
fi
}
fac $1
echo "$1!=$f"
命令:. ./recur1.sh 4
结果:
标签:bin,do,操作系统,批处理,18,echo,sh,done,bash From: https://blog.csdn.net/m0_63093530/article/details/139248190