Bash 脚本函数编程

摘要

笔者在文中分享如何进行 Bash 脚本编程,既是经验的回顾,也希望能够帮助到更多学习编程的朋友。文中提到的一些代码,可能有多种表现形式,笔者选择更符合编码规范的方式进行呈现。如果想要使用其他的开式,可以参考其他的文章。

1 概要

Bash 是Unix Shell的一种,它的名字是一系列缩写:Bourne-AgainSHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again/ born again)。

可以参考  Bash 介绍

2 Bash 编程

Bash是解释型语言,每次执行的时候,都需要通过解释器解释成机器执行的语言。因此我们需要在脚本文件的第一行指定解释器。

#! /usr/bin/env bash

2.1 变量

Bash中的变量是忽略数据类型的。在定义的时候无需指定数据类型,然后在使用的时候自动转换。

2.1.1 变量定义

varDecimal=100
varString="str"
varStringWithBlank="prefix content postfix"
varFromVar1="This is number ${varDecimal}"
varFromVar2="number${varDecimal}"

执行过程中,varFromVar1的值为"This is number 100",varFromVar2的值为 "number100"。

变量名需要满足这些条件:

  • 由字母、数字和下划线组成
  • 不能以数字开头
  • 区分大小写
  • 不能使用Shell的关键字

2.1.2 变量使用

变量使用的时候,需要用到

${}

比如:

echo ${VAR}

2.2 函数

2.2.1 函数定义

函数定义时,可以使用关键字 function 进行修饰,也可以省略。与高级语言不同,函数中参数传递时,不需要进行特别申明,可以直接使用 $n 进行引用。

function printInfo() {
  ret=1
  ....

  return ret
}

2.2.2 函数使用

函数调用的方式如同执行一般的命令一样。采用 函数名 + 参数列表的方式,直接调用。如:

  printInfo "User"

3 运行与调试

脚本执行的几种形式:

$ chmod +x tt.sh && ./tt.sh      # 为脚本添加执行权限后,直接引用
$ source tt.sh                   # 使用source命令执行,tt.sh不需要拥有执行权限
$ bash tt.sh                     # 使用解释器来执行,tt.sh不需要拥有执行权限

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章