创建函数
创建函数function name { name() { 函数返回值1 . 默认的退出状态码 函数运行结束时会返回一个退出状态码(函数中最后一条命令返回的退出状态码)。 2 . 使用return命令 return命令允许指定一个整数值来定义函数的退出状态码。 3 . 使用函数输出 func abc {
read -p "Enter a value: " value
echo "the input value is :"
echo $value
}
result=$(abc)
echo "the new value is $result"
output: $: ./test.sh
Enter a value: 100
the input value is :
100
在函数中使用变量1 . 向函数传递参数 #!/bin/bash
function addem {
if [ $# -eq 0 ] || [ $# -gt 2 ]
then
echo -1
elif [ $# -eq 1 ]
then
echo $[ $1 + $1 ]
else
echo $[ $1 + $2 ]
fi
}
echo -n "Add 10 and 15: "
value=$(addem 10 15)
echo $value
echo -n "Let's try adding just one number: "
value=$(addem 10)
echo $value
echo -n "Now trying adding no numbers: "
value=$(addem)
echo $value
echo -n "Finally,try adding three numbers: "
value=$(addem 10 15 20)
echo $value
由于函数使用特殊参数环境变量作为自己的参数值,因此它无法直接获取脚本在命令行中的参数值。 2 . 在函数中处理变量 定义局部变量:
local关键字保证了变量只局限在该函数中。 数组变量和函数1 . 向函数传递数组参数 #!/bin/bash
function testit {
local new_array
new_array=`echo $@`
echo "the new array value is ${new_array[*]}";
}
myarray=(1 2 3 4 5 6)
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 $arg1)
echo "the result is $result"
output: the original array is 1 2 3 4 5 6
the new array value is : 1 2 3 4 5 6
the original array is: 1 2 3 4 5
the result is 15
2 . 从函数返回数组 创建库shell中怎么使用库文件? a). 首先创建一个库文件 使用函数库的关键在于 使用 . ./funcLib #source命令的别名:点操作符
. /home/rich/libraries/myfuncs
如何直接在命令行上直接运行函数方法一:直接在命令行上创建函数, 然后在命令行上调用该函数即可。 缺点:退出shell时,函数就消失了。 方法二: 在 .bashrc文件中定义函数 将函数直接定义在这个文件中,这个文件在每次启动一个新的shell的时候,都会由shell重新载入。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |