14.Linux shell编程(函数)

简介: (创建于2018/2/1)1.简单的一个函数 1 #!/bin/bash 2 3...

(创建于2018/2/1)

1.简单的一个函数

  1 #!/bin/bash                                                                              
  2 
  3 function myfunc{    //注意这里没有(),函数名何{之间没有空格导致出错,空格一定要有
  4     echo "myfunc"
  5 }
  6 myfunc              //调用函数
      
  创建函数的格式,有两种:
  function name {
    commands
  }
  或
  name() {
    commands
  }
  
  执行后:
   tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh 
   ./16.sh: line 4: syntax error near unexpected token `echo'
   ./16.sh: line 4: `    echo "myfunc"'
       
   错在哪里?注意myfunc函数和后边的大括号间需要有空格
   
   正确写法:
   #!/bin/bash                                                                              
  
   function myfunc {
     echo "myfunc"
   }
   myfunc
   
   最好这样,换行防止错误
   
   #!/bin/bash                                                                              
  
   function myfunc 
   {
     echo "myfunc"
   }
   myfunc

2.函数重名,也是定义函数的两种方式

  1 #!/bin/bash                                                                              
  2 
  3 function myfunc    //去掉function会报错  myfunc: command not found
  4 {
  5     echo "myfunc"
  6 }
  7 myfunc
  8 
  9 myfunc()          //定义了一个和上边函数同名的函数,区别在于,这里没有使用function 关键字,还多了一个()
                      //这是两种定义函数的方式
 10 {
 11     echo "myfunc2"
 12 }
 13 
 14 myfunc
 
 
 执行结果
  tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh 
  myfunc
  myfunc2
  
  
  去掉第二个同名函数的小括号
  
  1 #!/bin/bash                                                                              
  2 
  3 function myfunc
  4 {
  5     echo "myfunc"
  6 }
  7 myfunc
  8 
  9 myfunc
 10 {
 11     echo "myfunc2"
 12 }
 13 
 14 myfunc
 
 结果
 
tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh 
myfunc
myfunc
myfunc2
myfunc

3.函数传参和返回值

  1 #!/bin/bash                                                                              
  2 
  3 function myfunc
  4 {
  5     echo $[ $1 + $2 ]
  6 }
  7 
  8 value=$(myfunc 10 90)
  9 echo "value :$value"
      
  结果
  
  100

4.函数调用局部变量和引入函数库

16.sh
    
  1 #!/bin/bash                                                                              
  2 source ./17.sh     //source关键字引入函数库文件
  3 //. .17.sh         //这种写法也同样是引入库文件,“.”就代表source关键字
  4 function myfunc
  5 {
  6     echo $beaty    //使用局部变量
  7 }
  8 beaty=12
  9 
 10 myfunc
 11 
 12 echo "add value:$(add 10 30)"     //调用库文件中的函数
      
17.sh

  1 #!/bin/bash                                                                              
  2 
  3 function add()
  4 {
  5     echo $[ $1 + $2 ]
  6 }


执行结果
tabstop=8root@iZbp11v3y27wpf6mglp2glZ:/user/renzhenming/shell# ./16.sh 
12
add value:40
相关文章
|
15天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
21天前
|
Linux
关于Linux目录访问函数总结
关于Linux目录访问函数总结
13 1
|
6天前
|
监控 Shell 开发工具
Shell编程
Shell编程
|
13天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
13天前
|
Shell 应用服务中间件 nginx
shell学习(七) 【shell 函数】
shell学习(七) 【shell 函数】
8 1
|
15天前
|
Linux 开发者
Linux文件编程(open read write close函数)
通过这些函数,开发者可以在Linux环境下进行文件的读取、写入和管理。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
84 4
|
16天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
27 2
|
21天前
|
传感器 Linux API
嵌入式Linux串口编程简介
嵌入式Linux串口编程简介
18 1
|
21天前
|
Linux 测试技术 C语言
【Linux】应用编程之C语言文件操作
【Linux】应用编程之C语言文件操作
|
22天前
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
15 0