zoukankan      html  css  js  c++  java
  • warning: here-document at line 22 delimited by end-of-file (wanted `EOF')

    记录一个bash脚本中使用EOF遇到的问题

    下面是我最初的代码

    #!/bin/bash
    
    #Author: wangml
    #Created Time: 
    #Script Description: 监控一个服务端口
    
    # 监控方法
    # 通过查看systemct1 service 服务启动状态
    # lsof 查看端口是否存在
    # 查看进程是否存在
    ####上述方式会出现问题:压力过大无法相应 或者 服务down了,但上述东西还在
    # 测试端口是否有响应 推荐
    
    port_status () {
      # 创建一个临时文件
      temp_file=`mktemp port_status.XXX`
    
      # 判断依赖命令telnet是否存在
      [ ! -x /usr/bin/telnet ] && echo "telnet: not found command"  && exit 1
    
      # 测试端口 $1 IP $2 port
      ( telnet $1 $2 <<EOF
      quit
      EOF
      ) &>$temp_file
    
      if egrep "^]" $temp_file &>/dev/null;then
          echo "$1 $2 is open"
      else
          echo "$1 $2 is down"
      fi
    
      rm -f $temp_file
    }
    
    port_status $1 $2
    

    在执行过程中会出现标题所示的warning

    (base) [root@CentOS-wangml shell]# bash -x ex2.sh 192.168.1.225 22
    ex2.sh: line 38: warning: here-document at line 22 delimited by end-of-file (wanted `EOF')
    ex2.sh: line 39: syntax error: unexpected end of file
    

    解决方式

    删除EOF前面所有的空格、制表符

    修改后代码如下

    #!/bin/bash
    
    #Author: wangml
    #Created Time: 
    #Script Description: 监控一个服务端口
    
    # 监控方法
    # 通过查看systemct1 service 服务启动状态
    # lsof 查看端口是否存在
    # 查看进程是否存在
    ####上述方式会出现问题:压力过大无法相应 或者 服务down了,但上述东西还在
    # 测试端口是否有响应 推荐
    
    port_status () {
    # 创建一个临时文件
    temp_file=`mktemp port_status.XXX`
    
    # 判断依赖命令telnet是否存在
    [ ! -x /usr/bin/telnet ] && echo "telnet: not found command"  && exit 1
    
    # 测试端口 $1 IP $2 port
    ( telnet $1 $2 <<EOF
    quit
    EOF
    ) &>$temp_file
    
    if egrep "^]" $temp_file &>/dev/null;then
        echo "$1 $2 is open"
    else
        echo "$1 $2 is down"
    fi
    
    rm -f $temp_file
    }
    
    port_status $1 $2
    
    转载请注明出处
  • 相关阅读:
    android开源项目汇总
    Java多线程与并发库高级应用之阻塞队列BlockingQueue
    Java多线程与并发库高级应用之线程数据交换Exchanger
    Java多线程与并发库高级应用之倒计时计数器
    Java多线程与并发库高级应用之信号量Semaphore
    Java多线程与并发库高级应用之公共屏障点CyclicBarrier
    DataGridView 绑定 List
    记录pygame在pycharm中添加不上,下载错误的问题
    MySQL用户操作勒
    mysql_secure_installation
  • 原文地址:https://www.cnblogs.com/lnlin/p/15368763.html
Copyright © 2011-2022 走看看