赞
踩
目录
- [1]
- function函数名{
- 命令序列
- }
-
- [2]
- 函数名() {
- 命令序列
示例1:
示例2:调用函数,创建用户
return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值。
使用原则:
1、函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码。
2、退出状态码必须是0~255,超出时值将为除以256取余。
return echo两种输出函数的获取方法
- function db1 {
-
- read -p "请输入: " value
-
- return $[$value * 2]
-
- }
-
- db1
-
- echo $?
-
- db1 () {
-
- read -p "请输入: " value
-
- echo $[$value * 2]
- }
-
- result=`db1`
-
- echo $result
示例1:利用函数输出一个数值为设定数值num的两倍
格式:
- 函数传参:
-
- sum1 () {
-
- sum=$[$1 + $2]
-
- echo $sum
-
- }
-
- read -p "输入第一个参数: " first
-
- read -p "输入第二个参数: " second
-
- sum1 $first $second
-
-
- sum2 () {
-
- sum=$[$1 + $2]
-
- echo $sum
-
- }
-
- sum2 $1 $2
示例1:
示例2:
$1--10 $4--40,所以输出值为10+40=50
linux全局变量局部变量
shell脚本全局变量局部变量
格式:
- myfun() {
-
- local i
-
- i=8
-
- echo $i
-
- }
-
- i=9
-
- myfun
-
- echo $i
示例:
函数调用自己本身的函数
-
- fact () {
-
- if [ $1 -eq 1 ]
- then
- echo 1
- else
- local temp=$[$1-1]
- local result=$(fact $temp)
- echo $[$1 * $result]
- # 5 * $result(4*$result(3*$result(2*$result(1))))
-
- fi
-
- }
-
- ######## main ########
-
- read -p "请输入" n
- result=$(fact $n)
- echo $result
示例:算一个数的阶乘,以数值8为例
格式:
- function 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" ""
示例:递归查看相关的文件或者目录
输出结果
- vim myfuncs.sh
- #!/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
- }
-
- fact () {
- if [ $1 -eq 1 ]
- then
- echo 1
- elif [ $1 -eq 0 ]
- then
- echo 0
- else
- local temp=$(jianfa $1 1)
- local result=$(fact $temp)
- #echo $[$1 * $result]
- echo $(chengfa $1 $result)
- fi
- }
-
-
-
- vim test.sh
-
- . myfuncs.sh
-
- value1=$1
-
- value2=$2
-
- result=$(jiafa $value1 $value2)
-
- result2=$(chufa $value1 $value2)
-
- result3=$(fact $value1)
-
- echo "加法结果为: $result"
- echo "除法结果为: $result2"
- echo "阶乘结果为: $result3"
示例:
输出的结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。