编写Hello world
|
|
执行方式
有两种执行方式
- sh : 例如上面的 # sh hello.sh
实际上使用的是/bin/bash程序,它会在一个新的bash环境内执行脚本内的指令!可以理解为在当前进程新建一个子程序bash进行程序的处理。(跟多线程相似,bash是子线程,私有变量不影响主进程的变量)。 - source : 在本bash程序中执行,所有操作在原本的bash中生效。(大概可以理解为,是在原来的进程中操作,变量定义和修改都会影响到原来的bash)。
判断式
test指令
这个指令可以用来检测某些文件或者相关的属性,更多使用在命令行中输入man test之后,能看到相关参数的说明。
|
|
Shell script的默认函数($0,$1…)
实际写一个指令,大概就能明白默认函数的位置了
- $0 : 脚本档名
- $1 : 第一个参数
- $2 : 第二个参数
- $# : 参数的个数
- $@ : 表示参数列表,例如上面的,表示[ “$1”, “$2”, “$3”, “$4”],每个变量是独立的。
- $* : 表示[ “$1c$2c$3c$4” ],其中c为分割字符,默认是空格键
shift:造成参数变量号码偏移
感觉偏移就像是移动参数数组的下标
先编写一个程序
来看执行结果
条件判断式
利用 if…then
if条件成立的话,执行then之后的语句,格式如下:
条件判断式中,当有多个条件要判别时,常用以下两个:
- && 代表 AND
- || 代表 OR
多重判断式
两种情形:成功或者失败
多个条件
case…esac
以case开始,esac结束。具体语法如下
function功能
【函数(function)】,类似于一个定义执行指令的片段封装体,例如:
注意点:shell script的执行方式是由上而下,由左而右,因此在shell script当中的function的设定一定要在程序的最前面。
例如下面例子,定义一个简单的打印函数,然后通过输入的参数进行case选择进行打印:
保存之后,执行代码:
书本中也提到,一行代码的函数看起来的确有点鸡肋,但是可以封装多条指令,变成一个模块,抽象重复的代码,提高代码整洁度。
function也有内建变量,与shell script很类似,函数名称$0,后续变量是 $1,$2… ,但只在函数内生效噢~
循环Loop
循环可以不断的执行某个程序段落,知道用户设定的条件达成为止。
while do done,until do done(不定循环)
①:当condition条件成立时,就进行循环,直到condition的条件不成立才停止
②:until
这两者之间其实是很类似的,区别在于,while循环时,至少会判断一次condition,而until运行到循环语句时,直接执行程序段,然后在第二次循环前再判断condition。
for…do…done(固定循环)
这种循环是知道要进行多少次循环,通常循环体是一个数组,对每一个参数进行遍历处理。
①:foreach形式
②:自定义步长的处理
了解一下数组的写法
跟平常的数组一样,通过下标来指定数组中每个值,同样下标也是从0开始的哟~
|
|
上面的例子大概写了如何定义一个函数、将数组作为传参、在函数内将传参数组转化还有数组的for循环~