2016-04-12 24 views
1

If deyiminde sql sorguyu çalıştırmaya çalışıyorum. İşte benim kabuk komut dosyasıIf deyim kabuk komut dosyasında sql sorgu çalıştır

#!/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 

olduğunu Ama bu bana nöbetçi EOFMYSQL sol kenar karşı olmak zorunda burada-belge, girintili değil

./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 

cevap

1

bir hata gösteriyor:

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'u <<-EOFMYSQL olarak değiştirirseniz, yalnızca sekmeleri kullandığınız ve boşluk olmadığı sürece bunu girebilirsiniz.

Bkz. the manual.

+0

Üzgünüm ama fazla bilgim yok. Ben de sql ve kabuk betiğini öğreniyorum. Lütfen bana detaylı bir şekilde açıklayabilir misiniz? – Lnux

+0

"EOFMYSQL" den önce satırda hiç alanınız olamaz. Bu hattaki ilk şey olmalı. –

+1

Bu basit durumda, * HERE * belgesine ihtiyacınız yoktur. Hangi kabuğu kullanıyorsunuz? – user1934428

İlgili konular