脚本编程大全:第十六章 函数 数组

重名函数覆盖
#!/bin/bash


function func1 {   #脚本运行自上而下 重新定义函数则被覆盖
	echo "This is an example func!"
}

func1 


function func1 {
	echo "This is the function changed !"
}



count=1

while [ $count -lt 5 ]
do
	func1 
	count=$[$count+1]
done



函数执行后会产生推出码 $?以查看
其实就是return
#!/bin/bash

function func1 () {

	echo "test exit val!"
	#la   返回127 环境变量中只有ls命令
	ls  -l   
}
func1
echo "$?"

#!/bin/bash

function func1 () {

	read -p "please enter a val:" val

	echo -e  "val is doubuled!"

return  $[$val**2]
}


func1 
echo "$?" #  $函数的返回值同推出码 
echo "返回值//退出码范围[0 , 255] 且必须为整数"

函数中输出的获取
#!/bin/bash

function cal () {

read -p "input your val:" val

echo $[$val*$val]    #该函数的输出 

}

count=$(cal)   #获取函数的输出而不是推出码并赋值
echo "$count is the val that cal() output"

向函数中传递参数
#!/bin/bash

#向函数传递参数
function func () {
#    $#获取参数数目 

#    $n  获取第n个参数 

	if [ $# -eq 0 ] || [ $# -eq 2 ] 
	then 
		echo "para is 0 || 2"
	else 
		echo "para is not !"
	fi
}

read -p "input your val:" val
func $val

函数中定义局部变量
#!/bin/bash

#传入函数的参数变量都是全局变量 
#局部变量 定义  local val_name 


function func1 () {

val=$[$1*$1]    #当地一个参数是val时 这两行语句都是同样的作用
val=$[$val*$val]  
local loc_val=1
echo "func sphere val exit:$loc_val"
}


read -p "read  your val :" val

func1 $val


echo "After func: $val " 
echo "sphere val exit:$loc_val"   #loc_val 函数内部局部变量 无数出

shell命令行中的数组
数组的定义  小括号 可以没有空格 

┌─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #arr=(3 1 2 4 5 6 100)

输出数组名获得地一个值  

┌─[✗]─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #echo $arr
3

数组下表从零开始

┌─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #echo $arr[0]
3[0]
┌─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #echo ${arr[1]}
1

两种输出数组全体的方式

┌─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #echo ${arr[]}
3 1 2 4 5 6 100
┌─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #echo ${arr[@]}
3 1 2 4 5 6 100
两种获取数组长度的方式
┌─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #echo ${#arr[@]}
7
┌─[root@parrot]─[/home/user/Desktop/Diary/playground/func]
└──╼ #echo ${#arr[
]}
7

####数组作为参数


#!/bin/bash

function func1 {	
	echo "This array in func is : ${myarray[*]}"
	echo -n "The array in func1"
	myarray[1]=666
	newarray=($(echo "$@"))
	echo " is:${newarray[*]} "
}

myarray=(1 2 3 4  6 66)
func1 ${myarray[*]}
echo "This array is :${myarray[*]}"
#func1 myarray   错!只会传入第一个值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值