在if语句shell脚本

时间:2016-04-12 10:26:13

标签: mysql sql shell

我正在尝试在if语句中运行sql查询。这是我的shell脚本

#!/bin/bash

var="select col1, col2 from table_name where condition;"

    count=$(ping -c 4 192.168.7.204 | awk -F',' '{ print $2 }' | awk '{ print $1 }')

      if [ $count -eq 0 ]; then

        mysql -h 192.168.7.204 -u username -ppassword db_name<<EOFMYSQL
        $var
        EOFMYSQL

      fi

但是它显示了一个错误

./test.sh: line 18: warning: here-document at line 12 delimited by end-of-file (wanted `EOFMYSQL')
./test.sh: line 19: syntax error: unexpected end of file

1 个答案:

答案 0 :(得分:1)

here-document sentinel EOFMYSQL必须靠左边距,而不是缩进:

var="select col1, col2 from table_name where condition;"

count=$(ping -c 4 192.168.7.204 | awk -F',' '{ print $2 }' | awk '{ print $1 }')

if [ $count -eq 0 ]; then    
    mysql -h 192.168.7.204 -u username -ppassword db_name <<EOFMYSQL
$var
EOFMYSQL    
fi

如果您将<<EOFMYSQL更改为<<-EOFMYSQL,只要您只使用制表符而不是空格,就可以缩进它。

请参阅the manual