## 创建一个 Bash Shell 脚本 * 创建一个 Bash 脚本需要使用文件编辑器,将命令集输入到文本文件中,如下: * 命令: vi bashTest.sh * bashTest.sh: #!/bin/bash … * 在脚本的第一行需要输入`#!/bin/bash`,作用是指定 Shell 脚本解释器,**如果不显示的指定,也可以执行,但是 bash 提供的函数不能使用**。 * 另外的情况是,用户默认的 Shell 解释器是 bash,但是如果其他用户要执行此脚本,这个用户的默认的 Shell 解释器不是 bash, 脚本执行过程中可能会出现异常,所以,要求在脚本的第一行要显示的指定 Shell 脚本解释器。 * 在 Shell 脚本中,#号是用来注释信息的,解释器不会执行#号后面的命令,只把他当中一般的注释信息。 注释可以用来说明脚本的使用场景和脚本的使用说明,方便其他用户使用脚本。 * 创建一个简单的脚本。 * 命令: vi bash01.sh * 例:bash01.sh: #!/bin/bash # 创建的第一个 bash 脚本 # 此脚本的作用是在用户工作目录下创建一个目录,在目录中创建一个日志文件 # 并且将当前的系统日期和时间输入到文件中 # 切换到工作目录 cd /home/hadoop01 # 创建 logs 目录 mkdir logs # 切换到 logs 目录 cd logs # 创建一个空的日志文件 touch syslog.log # 将当前系统日期时间添加到 syslog.log 日志文件中 date > syslog.log * 当第一次执行脚本时,系统会警告命令找不到,通常解决的办法有两种: * 第一种方法是将脚本所在的目录添加到环境变量 PATH 中,这样系统在执行脚本时会到 PATH 所指定的目录下去找,找到后执行。 * 另一种方式是使用绝对路径或在脚本所在目录下使用./的方式执行脚本,如下: /home/hadoop01/bash02/bash01.sh cd /home/hadoop01/bash02 ./bash01.sh * 如果在环境变量 PATH 中指定路径或使用绝对路径执行脚本,系统还会发出警告,说用户没有执行的权限,这是因为创建脚本文件时默认情况下是没有执行权限的,如下: -rw-rw-r--. 1 yarn yarn 440 7 月 6 16:51 bash01.sh 这和系统默认设置有关,可以重新设置。 * 看到脚本文件的属主有读写权限而没有执行权限,所以要通过命令 chmod 为属主设置可执行权限。 * 命令: chmod u+x bash01.sh * bash01.sh: -rwxrw-r--. 1 yarn yarn 440 7 月 6 16:52 bash01.sh 好了,现在就可以执行脚本了。