-
创建一个 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
-
-
好了,现在就可以执行脚本了。