系统相关
首页 > 系统相关> > 偷偷学习shell脚本之函数

偷偷学习shell脚本之函数

作者:互联网

目录

一、Shell函数

二、Shell函数格式

函数格式一:
function 函数名 {
  命令序列
}
函数格式二:
函数名() {
  命令序列
}

调用函数格式一:直接调用
函数名
调用函数格式一:赋值再输出
result=`函数名`
echo "想要输出的结果"

在这里插入图片描述

三、函数返回值

1、return

#!/bin/bash
function  cheng {
   read -p "请输入:" shu
   return $[$shu * 2]
}
cheng
echo $?

在这里插入图片描述
在这里插入图片描述

2、echo

#!/bin/bash
function  cheng {
   read -p "请输入:" shu
   echo $[$shu * 2]
}
cheng

在这里插入图片描述

四、函数传参

#!/bin/bash
sum() {
s=$[$1 + $2]
echo $s
}
read -p "请输入第一个参数:" first
read -p "请输入第二个参数:" second
sum $first $second

在这里插入图片描述

五、函数变量的作用范围

#!/bin/bash
Part() {
  echo "这是内部第一个i的值:$i"
  i=10
  echo "这是内部第二个i的值:$i"
  local i=15
  echo "这是内部第三个i的值: $i"
}

i=5
echo "这是外部i的值:$i"
Part
echo "这是函数执行完i的值$i

在这里插入图片描述

六、递归

1、阶乘

fact() {
if [ $1 -eq 1 ]
then
  echo 1
else
  local temp=$[$1 - 1]
  local result=$(fact $temp)
echo $[$1 * $result]
fi
}
  read -p "请输入:" n
  result=$(fact $n)
  echo $result

在这里插入图片描述
在这里插入图片描述

2、递归目录

#!/bin/bash
list_files () {
for f in `ls $1`
do
  if [ -d "$1/$f" ]
  then
    echo "+$2$f"
    list_files "$1/$f" " $2"
  else
    echo "-$2$f"
  fi
done
}
list_files "/var/log" ""

在这里插入图片描述
在这里插入图片描述

3、创建库

#!/bin/bash
jiafa() {
   echo $[$1 + $2]
}
jianfa() {
   echo $[$1 - $2]
}
chengfa() {
   echo $[$1 * $2]
}
chufa() {
if [ $2 -ne 0 ];then
   echo $[$1 / $2]
else
   echo "$2不能为0"
fi
}

在这里插入图片描述

#!/bin/bash
.  /root/test/ku1.sh
read -p "输入第一个参数值:" first
read -p "输入第二个参数值:" second

result1=`jiafa $first $second`
result2=`jianfa $first $second`
result3=$(chengfa $first $second)
result4=$(chufa $first $second)

echo "相加结果:$result1"
echo "相减结果:$result2"
echo "相成结果:$result3"
echo "相除结果:$result4"

在这里插入图片描述
在这里插入图片描述

标签:bin,Shell,函数,read,echo,偷偷,second,shell
来源: https://blog.csdn.net/weixin_51326240/article/details/111590059