shell中函数的应用

To turn the functions in this chapter into a library for use in other scripts, extract all the functions and concatenate them into one big file. If we call this file library.sh, a test script that accesses all of the functions might look like this:

#!/bin/sh

# Library test script
. library.sh
initializeANSI

echon "First off, do you have echo in your path? (1=yes, 2=no) "
read answer
while ! validint $answer 1 2 ; do
 echon "${boldon}Try again${boldoff}. Do you have echo "
 echon "in your path? (1=yes, 2=no) "
 read answer
done

if ! checkForCmdInPath "echo" ; then
 echo "Nope, can't find the echo command."
else
 echo "The echo command is in the PATH."
fi

echo ""
echon "Enter a year you think might be a leap year: "
read year

while ! validint $year 1 9999 ; do
 echon "Please enter a year in the ${boldon}correct${boldoff} format: "
 read year
done

if isLeapYear $year ; then
 echo "${greenf}You're right! $year was a leap year.${reset}"
else
 echo "${redf}Nope, that's not a leap year.${reset}"
fi

exit 0

应用函数,我们就可以复用我们的脚本。

值得注意的是 $ . tinyscript.sh ,就是在当前shell下执行脚本,不加"."或source

则会在子shell下执行脚本,可能会有不同的情况发生,值得注意。

(0)

相关推荐

  • Shell中函数返回值超出问题

    1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: 复制代码 代码如下: [ function ] funname [()] {   action;     [return int;]  } 说明: (1)可以带function fun()  定义,也可以直接fun() 定义,不带任何参数. (2)参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值

  • shell中函数的应用

    To turn the functions in this chapter into a library for use in other scripts, extract all the functions and concatenate them into one big file. If we call this file library.sh, a test script that accesses all of the functions might look like this: #

  • Shell中的函数、函数定义、作用域问题介绍

    说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很"自然"的错误,也让我吃了不少的苦头,所以总结一下Shell中函数的调用方法. 一.Shell中函数的定义 为了方便程序和管理和模块化并减少代码的重复,函数的确是一个好东西.而Shell中函数的定义有两种方法,如下: 复制代码 代码如下: function fname() {     statements: } 或 复制代码 代码如

  • Shell脚本函数定义和函数参数

    一.Shell函数 本教程目前为止所有脚本都是从头到尾执行.这样做很好,但你也许已经注意到有些脚本段间互相重复. shell允许将一组命令集或语句形成一个可用块,这些块称为shell函数. shell中函数的定义格式如下: 复制代码 代码如下: 函数名(){     command1     command2     ...     commandN     [ return value ] } 如果愿意,可在函数名前加上关键字function,这取决于使用者. 复制代码 代码如下: funct

  • linux shell自定义函数(定义、返回值、变量作用域)介绍

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. retu

  • linux shell 自定义函数方法(定义、返回值、变量作用域)

    一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. return后跟数值n(0-255 实例(testfun1.sh): #!/bin/sh fSum 3 2; function fSum

  • Shell中关于时间和日期的函数总结

    shell下获取系统时间的方法直接调用系统变量 获取今天时期:`date +%Y%m%d` 或 `date +%F` 或 $(date +%y%m%d) 获取昨天时期:`date -d yesterday +%Y%m%d` 获取前天日期:`date -d -2day +%Y%m%d` 依次类推比如获取10天前的日期:`date -d -10day +%Y%m%d` 或n天前的 `date -d "n days ago" +%y%m%d` 明天:`date -d tomorrow +%y

  • 浅谈Shell中的函数

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell也支持函数.Shell函数必须先定义后使用. 1.Shell函数的定义格式 可以带function关键字使用function fun_name()来定义,也可以直接给出函数名fun_name()定义.不能带任何参数,函数名必须唯一,使时可以传递参数,使用$1,$2,...,$* ,$@来获取参数.建议使用function关键字来定义函数,便于代码阅读.定义格式如下: function

  • Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

    在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些特殊符号的过度使用而导致脚本难以调试.难以阅读. 这些特殊符号罗列出来大致如下: 复制代码 代码如下: # ; ;; . , / / 'string'| ! $ ${} $? $$ $* "string"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || &~ ~

  • shell自定义函数的6个特点总结

    最近系统的学习了一下shell的函数,总体感觉根其他语言的函数差不多,不过它也有自身的特点 一,调用函数必须在定义函数的后,不然会报错的 复制代码 代码如下: fun fun (){  echo "aaaaaa" } fun 返回结果如下: 复制代码 代码如下: [root@krlcgcms01 mytest]# sh fun.sh  fun.sh: line 1: fun: command not found       //第一次调用fun是报错的,fun没有定义  aaaaaa 

随机推荐