Bash脚本简要教程

bash shell是很简单的,让我们从简单的Hello World的开始。

#1 第一个Bash脚本:Hello World

首先,你需要找到bash解释器的路径,执行如下命令:

使用你熟悉的文本编辑器创建文件Hello.sh,写入如下代码:

注意:注释以#号开头,第一行的#!不是注释,它代表bash解释器的路径。

添加Hello.sh的可执行权限:

执行Hello.sh:

Screen Shot 2016-02-26 at 11.26.03

或直接使用下面命令执行:


 #2 简单Bash备份脚本

备份当前用户home目录:


#3.1 变量

在hello world脚本中mystring就是一个变量,使用echo命令可以把变量输出到屏幕上(stdout)。

改写备份脚本,使用变量:

执行:

Screen Shot 2016-02-26 at 11.40.53


 #3.2 全局变量和本地变量

Screen Shot 2016-02-26 at 11.46.59


 #4 把命令行参数传入到脚本中

Screen Shot 2016-02-26 at 12.19.44


#5 使用bash脚本执行命令

Screen Shot 2016-02-26 at 12.24.18


 #6 输入输出(read)

Screen Shot 2016-02-26 at 12.32.07


#7 按CTRL-C之后执行某个函数

Screen Shot 2016-02-26 at 12.39.05


 #8.1 声明简单的bash数组

Screen Shot 2016-02-26 at 12.43.37


#8.2 把文件中数据读入到数组

文件中数据如下,email.txt:

把文件中邮箱读入到数组:

Screen Shot 2016-02-26 at 12.56.13


#9.1 条件控制语句:if/else

注意 [  ] 前后的空格,必须有空格。

Screen Shot 2016-02-26 at 13.02.10


#9.2 if/else的嵌套

Screen Shot 2016-02-26 at 13.10.29


 #10.1 比较:数值比较

-lt <
-gt >
-le <=
-ge >=
-eq ==
-ne !=

Screen Shot 2016-02-26 at 13.14.31

Screen Shot 2016-02-26 at 13.16.14


 #10.2 比较:字符串比较

= 相等
!= 不相等
< 小于
> 大于
-n s1 s1 不为空
-z s1 s1 为空

Screen Shot 2016-02-26 at 13.20.36


#11 文件测试

-b filename Block special file
-c filename Special character file
-d directoryname Check for directory existence
-e filename Check for file existence
-f filename Check for regular file existence not a directory
-G filename Check if file exists and is owned by effective group ID.
-g filename true if file exists and is set-group-id.
-k filename Sticky bit
-L filename Symbolic link
-O filename True if file exists and is owned by the effective user id.
-r filename Check if file is a readable
-S filename Check if file is socket
-s filename Check if file is nonzero size
-u filename Check if file set-ser-id bit is set
-w filename Check if file is writable
-x filename Check if file is executable

Screen Shot 2016-02-26 at 13.27.38


#12.1 for循环

Screen Shot 2016-02-26 at 13.32.02

如果在命令行下,可以这样写:

Screen Shot 2016-02-26 at 13.33.17


#12.2 while循环

Screen Shot 2016-02-26 at 13.35.08


#12.3 until循环


#13 函数

Screen Shot 2016-02-26 at 13.42.24


#14 Select

Screen Shot 2016-02-26 at 13.53.36


#15 case条件语句

Screen Shot 2016-02-26 at 14.05.40


#16 算数运算


#17 转译字符、单引号和双引号的区别

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注