Shell Script 基本语法
预计 8 分钟
假定大家是有编程基础以及使用 bash 的命令行的经验,因此只是简单的列举一下语法以及需要注意的地方。
注释
注释使用 # 号,如
第一个简单的 script
先说说第一行,这里的意思是告诉系统,用 /bin/bash 这个程序去执行下面的内容。
接着就没有什么好说的了,export PATH 是将 PATH 设为环境变量,这个程序就是简单的输出 Hello World!
默认变量
平时使用一些命令的时候都会带有参数,那么在 shell script 中,如何获取这些参数呢,通过 $0 $1 $2 … $n 这变量即可,比如下面这条:
$0为runapp$1为one$2为two$3为three
另外还有几个特殊的变量:
$#代表变量个数,不包括$0$@代表$1 $2 $3 … $n,如用上面的例子,则为one two three$*代表$1c$2c$3c…$n,c表示分隔字符默认情况下为空格,用上面的例子则为one two three
另外,在 shell script 中,我们可以使用 shift 对变量进行偏移,如
在输入
由于 shift 了 2 个变量,最终输出为 three 跟 four
条件
大体语法如上所示,我们可以在条件判断中使用 && 跟 ||
比如
注意 [ 右边的空格和 ] 左边的空格是必须的,还需要注意的一点是,&& 与 || 的优先级是相同的,并从左向右执行,而我们接触的大多数语言中 && 的优先级比 || 高。
另一种条件判断的语句是 case … esac,可以将其类比为 JavaScript 中的 switch 语句,语法如下:
注意 ) 和 ;; 都是必须的,而 *) 相当于 JavaScript 的 switch 语句中的 default
函数
函数也可以有内置变量,比如这样调用上面的函数:
则在函数体中,$1 为 1
循环
第一种:
第二种:
上面这两个语句的不同点事, while 是满足 condition 则执行下面的语句,而 until 是满足 condition 则停止执行。
另外还有 for 循环,实例如下
输出为
此外 for 循环还能这么写:
输出为
#shell script
#linux
#unix