这真的只是个入门级别的bash脚本编写教程,希望大佬指教。
================这是正文开始的分割线================
Shell是用户与内核进行交互操作的一种接口,用C语言实现,目前最流行的Shell称为bash shell;Shell是一门编程语言,解释型的语言,Shell脚本就是在用linux的Shell命令来编程;一个系统可以存在多个Shell,可以通过cat /etc/shells命令查看系统中安装的Shell;sh是Unix的解释器,bash是目前用的最多的,dash比bash的执行速度要快,但缺少很多功能。
系统会返回如下信息,
/bin/sh ##这里的sh实际上就是bash
/bin/bash ##bash脚本解释器(目前流行)
/sbin/nologin ##这里的nologin是限制虚拟用户登陆的
/bin/dash ##dash脚本解释器
/bin/tcsh ##tcsh脚本解释器
/bin/csh ##这里就是csh的脚本解释器
为什么我们使用bash解释器而不是其他的解释器呢?
bash是免费的并且很容易使用,可以看出bash将易用性和免费放到了第一位,所以会有很多linux用户来使用它。
脚本一般的结尾是sh,比如test.sh。linux文件是可以不需要尾缀的,但是为了便于区分文件和文件类型,所以我们加上了尾缀,像.zip是压缩文件,使用unzip进行解压。.tar.gz文件也是压缩文件,使用tar命令进行解压。
在进行bash shell脚本编写的时候,我们需压知道的是bash shell解释器是基于c语言编写的。这就有点像windows上的vbs脚本是基于vb语言一样。
2.脚本的编写规范(其实没有什么特别需要规范的地方,说一说规则)
#!/bin/bash ##这里是指定脚本解释器,可以不写,在不写的状态下,默认执行bash脚本解释器
#是单行注释,多行注释有两种写法
第一种
:<<BLOCK
....注释内容
BLOCK
在这里,由于:是空命令,所以这样就可以注释掉我们的内容,但是这样的一个弊端就是存在反引号的命令就会失效。为了解决反引号的问题,我们出现第二种方案。
第二种(1)
:<<BLOCK'
....注释内容
'BLOCK
第二种(2)
:<<'BLOCK
....注释内容
BLOCK'
第二种(3)
:<<'
....注释内容
'
block是 Here Documents 中的定义符号,名称任意,只要前后匹配就行。
建议使用第二种(3),因为简单。
============================分割线============================
感谢大家看到这里,如有错误请指正,谢谢各位大佬的指点。
文章评论