创建一个 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
好了,现在就可以执行脚本了。
内容来源于网络,如有侵权,请联系作者删除!