美文网首页
1.12 函数和参数

1.12 函数和参数

作者: 拙言_Coder | 来源:发表于2019-03-05 13:56 被阅读0次

    《Linux Shell 脚本攻略(第 2 版)》读书笔记

    1. 定义函数

      function fname() #关键字 function 可省略
      {
          #函数内容
      }
      
    2. 调用函数

      #只需要使用函数名就可以调用某个函数
      fname ;
      
    3. 传递参数

      fname arg1 arg2
      

      在函数中访问函数参数的方法:

      #!/bin/bash
      echo $0
      echo $1, $2 #访问参数1和参数2
      echo $@      #以列表的方式一次性打印所有参数
      echo $*      #类似于$@,但是参数被作为单个实体
      echo ----------------------
      fname() {
          echo $1, $2 #访问参数1和参数2
          echo $@      #以列表的方式一次性打印所有参数
          echo $*      #类似于$@,但是参数被作为单个实体
          return 0 #返回值
      }
      
      fname 1 2 3
      

      类似地,参数也可以传递给脚本,并通过$0(脚本名)访问

      • $1 第一个参数
      • $2 第二个参数
      • $n 第n个参数
      • $@ 被扩展成 $1 $2 $3
      • $* 被扩展成 $1c$2c$3,其中 c 是 IFS 的第一个字符。
      • $@ 要比 $* 用得多。由于 $* 将所有的参数当作单个字符串,因此它很少被使用。
    4. 递归函数

      fname() {
          echo $1
          sleep 1
          fname $1 #调用自身
      }
      fname hello
      

      Fork 炸弹

      :(){ :|:& };:
      
    5. 导出函数

      函数也能用 export 导出,导出后函数的作用域就可以以扩展到子进程中:

      export -f fname
      
    6. 读取命令返回值(状态)

      cmd          #执行了一条命令
      echo $?      #打印上一条命令的返回值(返回值也被称为“退出状态”)。成功为 0,否则为非0
      
    7. 向命令传递参数

      command [-pv] [-k N] filename
      

      上面这条命令有如下几种执行方式:

      • $ command -p -v -k 1 file
      • $ command -pv -k 1 file
      • $ command -vpk 1 file
      • $ command file -pvk 1

    相关文章

      网友评论

          本文标题:1.12 函数和参数

          本文链接:https://www.haomeiwen.com/subject/wgwnuqtx.html