shell函数使用方法
发布时间:2020-12-15 19:13:49 所属栏目:安全 来源:网络整理
导读:!/bin/bash #函数示例 function func1 { echo "This is an example of a function" }count= 1 while [ $count -le 5 ] do func1 count=$[ $count + 1 ] echo "count:" $count done echo "This is the end of the loop" func1 echo "Now this is the end of t
!/bin/bash#函数示例
function func1 {
echo "This is an example of a function"
}
count=1
while [ $count -le 5 ]
do
func1
count=$[$count + 1 ]
echo "count:" $count
done
echo "This is the end of the loop"
func1
echo "Now this is the end of the script"
#获取函数返回值
function db1 {
#read -p "Enter a value: " value
value=3
echo $[ $value * 2 ]
}
result=$(db1)
echo "The new value is $result"
#向函数传递参数
function addem {
if [ $# -eq 0 ] || [ $# -gt 2 ]
then
echo -1
elif [ $# -eq 1 ]
then
echo $[ $1 + $1 ]
else
echo $[ $1 + $2 ]
fi
}
echo -n "Adding 10 and 15:"
value=$(addem 10 15)
echo $value
#通过脚本直接传递参数,函数也使用了$1和$2变量,但它们和脚本主体中的$1和$2变量并不相同。要在函数中
#使用这些值,必须在调用函数时手动将它们传过去
function badfunc1 {
echo $[ $1 * $2 ]
}
if [ $# -eq 2 ]
then
value=$(badfunc1 $1 $2)
echo "The result is $value"
else
echo "Usage: badtest1 a b"
fi
#shell脚本局部变量
function func1 {
local temp=$[ $value + 5 ]
echo "The local temp is $temp"
result=$[ $temp *2 ]
}
temp=4
value=6
func1
echo "The result is $result"
echo "The global temp is $temp"
if [ $temp -gt $value ]
then
echo "temp is larger"
else
echo "temp is smaller"
fi
#向脚本中传入数组,此种方法只能传一个参数
function testit {
echo "The parameters are: $@"
thisarray=$1
echo "The received array is ${thisarray[*]}"
}
myarray=(1 2 3 4 5)
echo "Ther original array is:${myarray[*]}"
testit $myarray
#向脚本中传入数组的正确写法
function testit {
echo "number:$#"
echo "argume:$@"
local newarray
newarray=(`echo "$@"`)
echo "The new array value is: ${newarray[*]}"
}
myarray=(1 2 3 4 5)
echo "The original array is ${myarray[*]}"
testit ${myarray[*]}
#使用数组变量
function addarray {
local sum=0
local newarray
newarray=($(echo "$@"))
for value in ${newarray[*]}
do
sum=$[ $sum + $value ]
done
echo $sum
}
myarray=(1 2 3 4 5)
echo "The original array is:${myarray[*]}"
arg1=$(echo ${myarray[*]})
result=$(addarray ${myarray[*]})
echo "The result is $result"
echo "------------------------------"
result=$(addarray $arg1)
echo "The result is $result" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |