linux shell 函数库,bash shell 函数库

bash shell 函数库ash由自由软件基金会,Inc.版权所有(C) 1989-2011。

语法

bash [options] [file]

描述

Bash是一种与sh兼容的命令语言解释器,它执行从标准输入或文件中读取的命令。Bash还合并了Korn和C shell (ksh和csh)的有用特性。

Bash旨在成为IEEE POSIX规范(IEEE标准)的Shell和实用程序部分的一致实现1003.1)。在默认情况下,Bash可以配置为符合posix的。

sh 脚本

sh 脚本以 /bin/bash 作为脚本解释器

sh 脚本文件中的格式要求:

在 sh 脚本文件中,所有的 # 都被称为注释符

!但是在脚本文件中的第一行必须以 #!/bin/bash这种写法,以便 bash 解释器能够识别出

在 shell 引用变量时使用 echo $变量名 这种方式引用,如果未使用 $ 符,将打印 echo 后面的数值,如果使用 echo $变量名 将会打印出该变量名所获得的值。

echo “text $1″:在 echo 中的,双引号中的特殊字符会被 shell 所解析

echo ‘text $1’:而在 echo 中的单引号中特使字符,则会被忽略掉,即将 echo 的所有字符打印

“:反引号,属于命令中嵌套子命令

在脚本中是不存在整型的,所有的字符都被识别为字符串

函数库

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。

Shell 函数与 Shell脚本类似,Shell 的函数驻扎于内存中因此 shell 函数运行的速度非常快

shell中函数的定义格式如下:

Shell

[ function ] funname [()]

{

action;

[return int;]

}

# 或者

function fun_name () {

command1

command2

……

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[function]funname[()]

{

action;

[returnint;]

}

# 或者

functionfun_name(){

command1

command2

……

}

可以将 shell 函数 定义到 .bash_profile文件中、也可放于脚本文件中、或者直接放在指令里,通过 unset 删除定义的函数。当前 bash 退出后,定义的函数将不再保存

可以带 function fun() 定义,也可以直接 fun() 定义,不带任何参数。

参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255

例 一个简单的引用

Shell

#!/bin/bash

function date1 () {

date

echo '为 date 指令定义一个 date1 的函数' > /dev/null

}

date1

date1 # 引用指定的函数

1

2

3

4

5

6

7

8

9

10

#!/bin/bash

functiondate1(){

date

echo'为 date 指令定义一个 date1 的函数'>/dev/null

}

date1

date1# 引用指定的函数

下面的例子定义了一个函数并进行调用:

Shell

#!/bin/bash

function demofun () {

echo "这是我的第一个 shell 函数!"

}

echo "-----函数开始执行-----"

demofun

echo "-----函数执行完毕-----"

1

2

3

4

5

6

7

8

9

10

#!/bin/bash

functiondemofun(){

echo"这是我的第一个 shell 函数!"

}

echo"-----函数开始执行-----"

demofun

echo"-----函数执行完毕-----"

下面定义一个带有return语句的函数:

Shell

#!/bin/bash

function funReturn () {

echo "这个函数会对输入的两个数字进行相加运算..."

echo "输入第一个数字: "

read aNum

echo "输入第二个数字: "

read bNum

echo "两个数字分别为 $aNum 和 $bNum !"

return $(($aNum+$bNum))

}

funReturn

echo "输入的两个数字之和为 $? !"

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#!/bin/bash

functionfunReturn(){

echo"这个函数会对输入的两个数字进行相加运算..."

echo"输入第一个数字: "

readaNum

echo"输入第二个数字: "

readbNum

echo"两个数字分别为 $aNum 和 $bNum !"

return$(($aNum+$bNum))

}

funReturn

echo"输入的两个数字之和为 $? !"

带参数的函数示例:

Shell

#!/bin/bash

function funParam(){

echo "第一个参数为 $1 !"

echo "第二个参数为 $2 !"

echo "第十个参数为 $10 !"

echo "第十个参数为 ${10} !"

echo "第十一个参数为 ${11} !"

echo "参数总数有 $# 个!"

echo "作为一个字符串输出所有参数 $* !"

}

funParam 1 3 0 4 5 6 7 8 9 34 73

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#!/bin/bash

functionfunParam(){

echo"第一个参数为 $1 !"

echo"第二个参数为 $2 !"

echo"第十个参数为 $10 !"

echo"第十个参数为 ${10} !"

echo"第十一个参数为 ${11} !"

echo"参数总数有 $# 个!"

echo"作为一个字符串输出所有参数 $* !"

}

funParam1304567893473

定义一个函数库,并在一个脚本中引用

Shell

# 1. 定义函数库

#!/bin/bash

function sum () {

returnValue=$(( $1 + $2 ))

return $returnValue

}

read -p "请输入第一个数字" Num1

read -p "请输入第二个数字" Num2

sum $Num1 $Num2

# 2. 在脚本中文件中引用一个函数库

#!/bin/bash

. /home/net/function # 引用指定库

echo "$Num1+$Num2=$?"

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# 1. 定义函数库

#!/bin/bash

functionsum(){

returnValue=$(($1+$2))

return$returnValue

}

read-p"请输入第一个数字"Num1

read-p"请输入第二个数字"Num2

sum$Num1$Num2

# 2. 在脚本中文件中引用一个函数库

#!/bin/bash

./home/net/function# 引用指定库

echo"$Num1+$Num2=$?"

:输出结果为

Shell

# 例 一个简单的引用 输出结果为

2018年 08月 21日 星期二 13:17:48 CST

2018年 08月 21日 星期二 13:17:48 CST

# 下面的例子定义了一个函数并进行调用 输出结果为:

-----函数开始执行-----

这是我的第一个 shell 函数!

-----函数执行完毕-----

# 下面定义一个带有return语句的函数 输出结果为:

这个函数会对输入的两个数字进行相加运算...

输入第一个数字:

5

输入第二个数字:

8

两个数字分别为 5 和 8 !

输入的两个数字之和为 13 !

# 带参数的函数示例 输出结果为:

第一个参数为 1 !

第二个参数为 3 !

第十个参数为 10 !

第十个参数为 34 !

第十一个参数为 73 !

参数总数有 11 个!

作为一个字符串输出所有参数 1 3 0 4 5 6 7 8 9 34 73 !

# 定义一个函数库,并在一个脚本中引用 输出结果为:

请输入第一个数字10

请输入第二个数字20

10+20=30

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

# 例 一个简单的引用 输出结果为

2018年08月21日星期二13:17:48CST

2018年08月21日星期二13:17:48CST

# 下面的例子定义了一个函数并进行调用 输出结果为:

-----函数开始执行-----

这是我的第一个shell函数!

-----函数执行完毕-----

# 下面定义一个带有return语句的函数 输出结果为:

这个函数会对输入的两个数字进行相加运算...

输入第一个数字:

5

输入第二个数字:

8

两个数字分别为5和8!

输入的两个数字之和为13!

# 带参数的函数示例 输出结果为:

第一个参数为1!

第二个参数为3!

第十个参数为10!

第十个参数为34!

第十一个参数为73!

参数总数有11个!

作为一个字符串输出所有参数1304567893473!

# 定义一个函数库,并在一个脚本中引用 输出结果为:

请输入第一个数字10

请输入第二个数字20

10+20=30

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值