1. 在shell文件内部定义函数并引用:
[~/shell/function]# cat factorial.sh
#!/bin/bash
function factorial
{
factorial=1
for (( i=1;i <= $1;i++ ))
do
factorial=$[ $factorial * $i ]
done
echo $1的阶乘是:$factorial
}
echo '程序名':$0,用于求阶乘
factorial $1
[~/shell/function]# ./factorial.sh 10
程序名:./factorial.sh,用于求阶乘
10的阶乘是:3628800
2.返回值
函数返回码是指函数最后一条命令的状态码,可以用于函数返回值
使用return命令手动指定返回值:
[~/shell/function]# cat return.sh
#!/bin/bash
function fun1 {
read -p "enter a: " a
echo -n "print 2a: "
return $[ $a * 2 ]
}
fun1
echo "return value $?"
[~/shell/function]# ./return.sh
enter a: 100
print 2a: return value 200
由于shell状态码最大是255,所以当返回值大于255时会出错
[~/shell/function]# ./return.sh
enter a: 200
print 2a: return value 144
3.函数输出
为了返回大于255的数、浮点数和字符串值,最好用函数输出到变量:
[~/shell/function]# cat ./fun_out.sh
#!/bin/bash
function fun2 {
read -p "enter a: " a
echo -n "print 2a: "
echo $[ $a * 2 ]
}
result=`fun2`
echo "return value $result"
[~/shell/function]# ./fun_out.sh
enter a: 400
return value print 2a: 800
4.向函数传递参数(使用位置参数):
[~/shell/function]# cat ./parameter.sh
#!/bin/bash
if [ $# -ne 3 ]
then
echo "usage: $0 a b c"
exit
fi
fun3() {
echo $[ $1 * $2 * $3 ]
}
result=`fun3 $1 $2 $3`
echo the result is $result
[~/shell/function]# ./parameter.sh 1 2 3
the result is 6
[~/shell/function]# ./parameter.sh 1 2
usage: ./parameter.sh a b c
5.全局变量与局部变量
默认条件下,在函数和shell主体中建立的变量都是全局变量,可以相互引用,当shell主体部分与函数部分拥有名字相同的变量时,可能会相互影响,例如:
[~/shell/function]# cat ./variable.sh
#!/bin/bash
if [ $# -ne 3 ]
then
echo "usage: $0 a b c"
exit
fi
temp=5
value=6
echo temp is: $temp
echo value is: $value
fun3() {
temp=`echo "scale=3;$1*$2*$3" | bc -ql`
result=$temp
}
fun3 $1 $2 $3
echo "the result is $result"
if [ `echo "$temp > $value" | bc -ql` -ne 0 ]
then
echo "temp is larger"
else
echo "temp is still smaller"
fi
[~/shell/function]# ./variable.sh 12 3 2
temp is: 5
value is: 6
the result is 72
temp is larger
在这种情况下,在函数内部最好使用局部变量,消除影响
[~/shell/function]# cat ./variable.sh
#!/bin/bash
if [ $# -ne 3 ]
then
echo "usage: $0 a b c"
exit
fi
temp=5
value=6
echo temp is: $temp
echo value is: $value
fun3() {
local temp=`echo "scale=3;$1*$2*$3" | bc -ql`
result=$temp
}
fun3 $1 $2 $3
echo "the result is $result"
if [ `echo "$temp > $value" | bc -ql` -ne 0 ]
then
echo "temp is larger"
else
echo "temp is still smaller"
fi
[~/shell/function]# ./variable.sh 12 3 2
temp is: 5
value is: 6
the result is 72
temp is still smaller
6.向函数传递数组变量:
[~/shell/function]# cat array.sh
#!/bin/bash
a=(11 12 13 14 15)
echo ${a[*]}
function array(){
echo parameters : "$@"
local factorial=1
for value in "$@"
do
factorial=$[ $factorial * $value ]
done
echo $factorial
}
array ${a[*]}
[~/shell/function]# ./array.sh
11 12 13 14 15
parameters : 11 12 13 14 15
360360
7.函数返回数组变量
[~/shell/function]# cat array1.sh
#!/bin/bash
a=(11 12 13 14 15)
function array(){
echo parameters : "$@"
local newarray=(`echo "$@"`)
local element="$#"
local i
for (( i = 0; i < $element; i++ ))
{
newarray[$i]=$[ ${newarray[$i]} * 2 ]
}
echo new value:${newarray[*]}
}
result=`array ${a[*]}`
echo ${result[*]}
[~/shell/function]# ./array1.sh
parameters : 11 12 13 14 15 new value:22 24 26 28 30
相关推荐
本文将基于"Linux函数详解(函数大全)"这一主题,深入解析Linux C函数的使用和重要性,涵盖从基本输入输出到文件操作,再到进程控制等多个方面。 首先,我们从最基础的输入输出函数开始,如`printf`和`scanf`,...
"Linux函数大全"是一部非常实用的参考资料,它涵盖了广泛的功能,旨在帮助开发者在日常编程中快速查找和理解所需的函数。下面,我们将深入探讨一些重要的Linux函数及其用途。 1. **标准输入输出**: - `printf` 和...
这个“常用Linux函数库大全”涵盖了广泛的功能,对于学习和使用Linux系统的人来说,具有极高的参考价值。 首先,让我们了解一下Linux中的主要函数库: 1. **Glibc(GNU C Library)**:它是Linux系统中最基础的库...
《Linux函数大全》是针对Linux操作系统中编程时常用的函数进行详尽整理的参考资料。这个.chm文件,全称为“Compiled HTML Help”,是一种Windows系统下的帮助文档格式,它将多个HTML页面整合在一个文件中,便于用户...
Linux函数手册是Linux系统开发人员和程序员的重要参考资料,它包含了大量与Linux系统调用和C标准库相关的函数信息。这份rar压缩包文件很可能是Linux系统的man手册页的集合,其中详细记录了各种函数的用途、参数、...
易语言源码易语言调用linux函数源码.rar 易语言源码易语言调用linux函数源码.rar 易语言源码易语言调用linux函数源码.rar 易语言源码易语言调用linux函数源码.rar 易语言源码易语言调用linux函数源码.rar ...
1. 函数插桩的基本概念 插桩是一种软件工程中的技术,主要用于...在Linux环境下,开发者可以根据实际需求选择合适的插桩阶段和方法,灵活地实现插桩功能。理解并熟练运用插桩技术,可以极大地提升开发效率和软件质量。
总结来说,"c++钩子函数:copy hook_linux函数hook"是一个C++项目,它在Linux环境下实现了文件复制操作的监控和控制,可能通过内核模块、用户空间钩子或两者结合的方式。项目使用了ATL库来创建COM接口,并提供了类型...
在易语言中调用Linux函数,主要是为了利用Linux系统的丰富功能和强大的系统级操作能力。这一过程涉及到动态链接库(DLL)的加载、函数地址获取以及函数调用等技术。下面将详细阐述这些知识点。 首先,`load_so`通常...
Linux函数大全
《C C++ Linux函数手册大全》是一份涵盖了C语言、C++语言以及Linux系统编程的综合性参考资料,旨在为程序员提供详尽的函数解释和使用示例。这份手册的全面性使得开发者无需在不同资源间频繁查找,从而提高开发效率。...
"Linux函数详解"的主题聚焦于深入理解Linux环境下的C语言函数,这对于系统级编程、驱动开发以及嵌入式系统的开发者来说尤为关键。Linux内核是用C语言和少量汇编编写,因此熟悉这些函数对于理解和定制Linux系统至关...
Linux函数学习手册是一份详尽的资源,专为那些希望深入了解Linux系统编程的开发者和爱好者设计。手册可能包含了从基本的系统调用到高级的编程技术的所有内容,旨在帮助读者理解如何在Linux环境下使用C语言进行高效...
Linux函数大全,正如其标题所示,是一份详尽的资源,涵盖了Linux系统中广泛使用的各种函数。这份文档,以HTML格式呈现,旨在为开发者提供一个便捷的参考工具,特别是对于那些正在深入学习Linux编程和系统级开发的人...
标题提到的“易语言调用Linux函数源码”,意味着我们将探讨如何在易语言中利用源代码与Linux操作系统进行交互。 在Linux环境下,系统调用是程序与操作系统内核沟通的桥梁。这些调用提供了诸如文件操作、进程管理、...
"Linux函数查询器用户使用手册借鉴.pdf" 本资源手册是关于Linux函数查询器的使用手册,旨在帮助用户快速理解和使用C语言库函数。该手册涵盖了产品简介、产品特色、详细功能介绍、产品使用、FAQ、许可授权等方面的...
Linux C函数库参考手册是一套Linux C函数使用手册,这里还提供了LinuxC函数手册chm,帮助大家查找。在Linux下,使用到的C语言函数中文手册,全都有实例,如果你是大神,完全不需要,如果你对英文的手册感到头疼,...
Linux函数参考手册是一份极其宝贵的资源,它涵盖了Linux系统编程中的各种函数,为开发者提供了详细的使用指南和示例。在Linux环境下,系统调用和C库函数是开发人员进行低级编程、操作文件、网络通信、进程管理等任务...
这个名为"Linux函数手册等.zip"的压缩包显然包含了与Linux操作系统和C++编程语言相关的资源。让我们深入探讨一下这两个主题的知识点。 首先,我们关注C++,这是一种静态类型、编译式的通用编程语言,以其面向对象...
堆栈是一种先进后出的数据结构,是计算机中最常用的一种数据结构,堆栈可以用数组 实现,也可以用链表实现。其中,堆(heap)中存放的是用malloc 分配地址的动态变量或 c++中的对象等数据;栈(stack )又称称为堆栈...