Skip to content

Latest commit

 

History

History
71 lines (45 loc) · 2.97 KB

创建一个 Bash Shell 脚本.md

File metadata and controls

71 lines (45 loc) · 2.97 KB

创建一个 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
        

好了,现在就可以执行脚本了。