linux C笔记5——Shell编程之函数


    函数定义的一般格式:
    函数名()
    {
        命令序列
    }

也可以加shell关键字function修饰

    function 函数名()
    {
        命令序列
    }

shell函数的定义使用可分为3种情况:
    1.在shell终端的交互式环境下定义和使用函数
    2.在shell脚本程序中定义和使用函数,使其成为shell程序的一部分
    3.在一个单独的文件中定义函数,shell程序调用该函数

    shell函数与shell程序区别:shell程序在子shell运行。而shell函数在当前shell中运行。因此在当前shell中可以看到shell函数对变量修改情况。
    另外,在函数中也可使用shell的各种变量,如系统变量。


   交互式shell中定义和使用函数


   

   直接写函数定义即可,如:

    [sayer@localhost Shell]$ dir()
    > {
    > ls -l
    > }
    其中“>”是系统自动出现的,当输入},系统会自动跳出函数定义,则函数已经定义好了。可直接在命令行输入函数名执行。
    此时定义的函数会一直保留到用户从系统中退出,用unser 函数名,则可注销在交互式环境中定义的函数。



shell脚本中定义和使用函数


    shell脚本中的函数必须先定义后使用,一般将函数定义放在脚本开始处,调用函数时仅使用函数名即可

    -------------------------------------
       脚本中定义使用函数例子
    --------------------------------------

-------------------------------------------------------------------------------------
  1 #!/bin/bash
  2 #This is a sample about shell sortware's Function
  3 #Funvtion : Output greeting again
  4
  5 morning()
  6 {
  7         echo "Good mirning ! "
  8         echo "Back from function morning ..."
  9         return
 10 }
 11
 12 afternoon()
 13 {
 14         echo "Good afternoon ! "
 15         echo "Back from function afternoon ..."
 16         return
 17 }
 18
 19 evening()
 20 {
 21         echo "Good evening ! "
 22         echo "Back from function evening ..."
 23 }
 24
 25 greeting()
 26 {
 27         hour=$(date +%H)
 28         if [ "$hour" -ge 0 -a "$hour" -le 11 ]
 29         then    
 30                 morning    #函数调用,直接用名字即可
 31         elif [ "$hour" -ge 12 -a "$hour" -le 17 ]
 32         then    
 33                 afternoon
 34         else    
 35                 evening
 36         fi
 37         echo "Back from function geeting ..."
 38         return
 39 }
 40
 41 echo "The time is : `date`"
 42 greeting
 43 echo "Back from function greetint_again ..."

        --------
          结果
        --------
    -------------------------------------
    [sayer@fedora shell]$ ./function.sh
    The time is : 2016年 05月 11日 星期三 16:20:46 CST
    Good afternoon !
    Back from function afternoon ...
    Back from function geeting ...
    Back from function greetint_again ...

-------------------------------------------------------------------------------------


函数定义在单独的文件中



    可将函数定义在单独的shell监本文件中,然后将函数文件载入shell,就可在命令行或脚本中像输入普通命令一样通过函数名调用该函数
    保存函数的文件名可任意,但最好保持函数功能、文件名、函数名一致,便于记忆。
    文件创建完之后需将函数文件载入shell中。
    载入文件格式: .filname   即:<点><空格><文件名>   (注意输入正确的文件路径)
    可用set命令(显示已载入的函数,包括系统的环境变量)查看函数是否成功载入。
    执行函数只需输入函数名即可。就像使用shell的内部命令一样
    用unset命令可将函数从shell中卸载:unset 函数名
    若需要改动函数,则应先使用unset在shell中卸载函数,改动后再重新载入此文件

你可能感兴趣的:(C/C++)