shell脚本之函数
来源:互联网 发布:网络数据库的信息检索 编辑:程序博客网 时间:2024/04/19 18:30
1.Shell 函数有两种语法形式:
function name { commands return}andname () { commands return}
这里的 name 是函数名,commands 是一系列包含在函数中的命令。
两种形式是等价的,可以交替使用。下面我们将查看一个说明 shell 函数使用方法的脚本:
1 #!/bin/bash23 # Shell function demo45 function funct {6 echo "Step 2"7 return8 }910 # Main program starts here1112 echo "Step 1"13 funct14 echo "Step 3"
step1
step2
step3
补充1:想让函数fsum返回字符串,可以echo "${a}+${b}=${c}"输出出来,通过sum=`fsum`来捕获,给变量sum赋值
your_name='qinjx'
str="Hello, I know your are \"${your_name}aa\"! \n"
echo ${str}
function fsum(){
a=1
b=2
c=3
echo "${a}+${b}=${c}"
}
sum=`fsum`
echo ${sum}
your_name='qinjx'
str="Hello, I know your are \"${your_name}aa\"! \n"
echo ${str}
function fsum(){
a=1
b=2
c=3
echo "${a}+${b}=${c}"
}
sum=`fsum`
echo ${sum}
补充二:想让函数fsum返回字符串,可以给一个全局变量赋值
your_name='qinjx'
str="Hello, I know your are \"${your_name}aa\"! \n"//全局变量str
echo ${str}
function fsum(){
a=1
b=2
c=3
str="${a}+${b}=${c}"
}
fsum
echo ${str}
补充三,函数返回整形值,只能通过$? 系统变量获得,否则为空
function
fSum()
{
echo
$1,$2;
return
$(($1+$2));
}
fSum 5 7;
total=$(fSum 3 2);
echo
$total,$?;
5,7
3,2
5
2.局部变量
局部变量只能在定义它们的 shell 函数中使用,并且一旦 shell 函数执行完毕,它们就不存在了。
拥有局部变量允许程序员使用的局部变量名,可以与已存在的变量名相同,这些变量可以是全局变量, 或者是其它 shell 函数中的局部变量,却不必担心潜在的名字冲突。
这里有一个实例脚本,其说明了怎样来定义和使用局部变量:
#!/bin/bash# local-vars: script to demonstrate local variablesfoo=0 # global variable foofunct_1 () { local foo # variable foo local to funct_1 foo=1 echo "funct_1: foo = $foo"}funct_2 () { local foo # variable foo local to funct_2 foo=2 echo "funct_2: foo = $foo"}echo "global: foo = $foo"funct_1echo "global: foo = $foo"funct_2echo "global: foo = $foo"
正如我们所看到的,通过在变量名之前加上单词 local,来定义局部变量。这就创建了一个只对其所在的 shell 函数起作用的变量。在这个 shell 函数之外,这个变量不再存在。当我们运行这个脚本的时候, 我们会看到这样的结果:
[me@linuxbox ~]$ local-varsglobal: foo = 0funct_1: foo = 1global: foo = 0funct_2: foo = 2global: foo = 0
我们看到对两个 shell 函数中的局部变量 foo 赋值,不会影响到在函数之外定义的变量 foo 的值。
这个功能就允许 shell 函数能保持各自以及与它们所在脚本之间的独立性。这个非常有价值,因为它帮忙 阻止了程序各部分之间的相互干涉。这样 shell 函数也可以移植。也就是说,按照需求, shell 函数可以在脚本之间进行剪切和粘贴。
3.你的 .bashrc 文件中的 shell 函数
Shell 函数完美地替代了别名,并且实际上是创建个人所用的小命令的首选方法。别名 非常局限于命令的种类和它们支持的 shell 功能,然而 shell 函数允许任何可以编写脚本的东西。 例如,如果我们喜欢 为我们的脚本开发的这个 report_disk_space shell 函数,我们可以为我们的 .bashrc 文件 创建一个相似的名为 ds 的函数:
ds () { echo “Disk Space Utilization For $HOSTNAME” df -h}
- shell脚本之函数
- shell脚本之函数
- Shell脚本编程之函数
- shell 脚本编程之函数
- linux学习之shell脚本 ------- shell函数
- Shell脚本编程之函数篇
- Linux shell脚本编程之函数
- shell脚本之函数(八)
- shell脚本:函数使用
- shell脚本中的函数
- shell脚本--创建函数
- Shell脚本main函数
- shell脚本函数
- shell脚本之注释,数组,控制语句,函数【shell脚本的学习笔记二】
- shell脚本之shell数组
- Bash脚本编程(四)之Shell函数
- linux shell高级脚本编程之函数篇
- Linux Shell 脚本编程之函数
- iOS知识框架图
- 真正解决ASP.NET每一个页面首次访问超级慢的问题
- minerd和wnTKYg进程(病毒)--被攻击CPU占用率达到100%
- Android Handler加载图片的几种方式(完)
- Java中的参数传递
- shell脚本之函数
- 计算n!
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建
- 图解DNS的工作原理
- MQTT---HiveMQ源码详解(十九)Cluster-Request/Response
- 5-18 Hashing
- 创建Activiti项目
- ACM程序设计 -L (字符串倒输出)
- MQTT---HiveMQ源码详解(二十)Cluster-Replicate/VectorClock