每天三分钟搞定linux shell脚本25 shell函数的基本使用
发布时间:2022-12-07 10:59:44 所属栏目:Unix 来源:
导读: 代码重用的时候,通过函数非常方便。在函数代码块中实现逻辑,在需要使用的时候调用该函数,建立脚本:
#/bin/bash
function echo1 {
echo "This is function 1"
}
echo2() {
#/bin/bash
function echo1 {
echo "This is function 1"
}
echo2() {
|
代码重用的时候,通过函数非常方便。在函数代码块中实现逻辑,在需要使用的时候调用该函数,建立脚本: #/bin/bash function echo1 { echo "This is function 1" } echo2() { echo "This is function 2" } echo1 echo2 运行后输出: This is function 1 This is function 2 1 2 shell中的函数必须先定义后使用,否则就会报错。同时函数名也必须是唯一的,如果定义了两个相同名字的函数,后面的会覆盖前面的。 注意函数体的左花括号{和后面的命令之间必须有空格或换行,如果将最后一条命令和右花括号}写在同一行,命令末尾必须有;号。 UNIX Shell函数_unix shell编程_unix shell编程 pdf 之前我们在使用脚本的时候也给脚本传参过,向函数传递参数以及函数中处理参数的过程跟这个相同。比如用$#表示参数的总个数,用$1表示第一个参数等等。 1 传递普通变量 向函数传递普通变量的时候只要在调用的时候把参数写在后面即可,举例如下: #/bin/bash function process_param { if [ $# -eq 0 ] || [ $# -gt 2 ];then echo "-1" elif [ $# -eq 1 ];then echo $[ $1 * 10 ] else echo $[ $1 + $2 ] fi } value=$(process_param) echo "value of process_param is $value" value=$(process_param 1) echo "value of process_param 1 is $value" value=$(process_param 1 2) echo "value of process_param 1 2 is $value" 运行后结果为: value of process_param is -1 value of process_param 1 is 10 value of process_param 1 2 is 3 2传递数组 向函数传递数组的时候,如果以变量名的形式传参UNIX Shell函数,函数内部将只能拿到数组的第一个元素。举例如下 #/bin/bash function show_array { echo "num is array is $@" array=$1 echo "array is ${array[*]}" } array_source=(1 2 3) echo "array_source is ${array_source[*]}" show_array $array_source 运行后结果为: array_source is 1 2 3 num is array is 1 array is 1 如果想要传递整个数组的话,在函数调用处和函数内部都要使用echo语句,举例如下: #/bin/bash function show_array { array=($(echo "$@")) for value in ${array[*]} do echo "value is $value" done } test_array=(1 2 3) echo "array_source is ${test_array[*]}" show_array $(echo ${test_array[*]}) 运行后结果如下: array_source is 1 2 3 value is 1 value is 2 value is 3 通过echo语句可以传递整个数组了。 (编辑:我爱资讯网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
