shell编程高级之函数
2015-12-04 21:07
621 查看
shell编程高级之函数
创建函数#第一种方式
function name { commands }
#第二种方式
name(){ commands }
#使用函数
#!/bin/bash #function # 此处fun1和{中间要有空格 function fun1 { echo "i am fun1" } fun1 fun2(){ echo "i am fun2" } fun2
函数返回值
#默认退出状态码 $?
#return命令
#函数已结束就取返回值
#退出状态码必须在0-255之间
function fun1 { commands return 250 } fun1 echo $?
#使用函数输出
function fun1 { commands echo "holy shit" } val=`fun1` echo $val
在函数中使用变量
# 向函数中传递参数
# 需在同一行
#在函数中处理变量
#在函数外定义的都是全局变量
#在函数内部使用局部变量加local关键字
# $0 函数名 $1 $2 $… 参数值 $# 计数
fun5(){ if [ $# -eq 0 ] || [ $# -gt 2 ] then echo -1 elif [ $# -eq 1 ] then echo $[$1 * $1] else echo $[$1 * $2] fi } fun5 10 fun5 10 11 fun5 10 11 12
数组变量和函数
#传递给函数数组变量
#在传递给函数前分解成单个值,传递后在函数内部组合成数组
function testit { local newarray newarray=(`echo "$@"`) echo "The new array value is : ${newarray[*]}" } myarray=(1 2 3 4 5) echo "The original array value is : ${myarray[*]}" testit ${myarray[*]}
#让函数返回数组变量
rtarray(){ local originalArr local newArr local elements local i originalArr=(`echo "$@"`) newArr=(`echo "$@"`) elements=$[ $#-1 ] for(( i = 0;i <= $elements;i++ )) { newArr[$i]=$[${originalArr[$i]}*2] } echo ${newArr[*]} } myarr=(1 2 3 4 5) echo "The original array value is :${myarr[*]}" val1=`rtarray ${myarr[*]} ` echo "The new array value is : ${val1[*]}"
函数递归
#计算阶乘 factorial(){ if [ $1 -eq 1 ] then echo 1 else local tmp=$[$1-1] local result=`factorial $tmp` echo $[ $result * $1 ] fi } read -p "Enter The Value:" value result=`factorial $value` echo "The factorial of the $value is $result"
创建库
#引入
. ./ku.sh.号为source的快捷别名.称作点操作符
. ./ku.sh result=`addem 10 15` echo "The result is $result"
相关文章推荐
- hbase shell的一些简单命令
- .bash_profile和.bashrc的区别(如何设置生效)
- Shell命令sshpass非交互SSH密码验证
- android-studio开发NDK错误记录:bash: ../../build/intermediates/classes/debug: is a directory
- PowerShell检测并添加用户权限
- linux shell自带变量
- shell脚本三剑客之sed命令
- shell脚本三剑客之grep命令
- shell脚本三剑客之awk命令
- linux shell中 if else以及大于、小于、等于逻辑表达式 简介
- Calabash(1)在MacOS10.11上安装
- Linux学习篇之---shell下输出带颜色文字
- /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc和~/.bash_logout
- Shell编程之变量赋值和引用
- 如何实现shell并发
- shell 使用
- -bash: brew: command not found
- 【安卓手机通用】android adb shell 命令大全
- powershell 正则人民币转大写
- Shell正则表达式学习笔记