2016-05-17 9 views
0
filenname="/home/sxxxx/lob.oaxxx" 
while read a b 
do 
    mdate=$(date -d "$b" +'%s') 
    system_todate=$(date +'%s') 
    ((diff=$system_todate-$mdate)) 
    days=`echo "$diff/86400" | bc` 
    echo "$(date +%Y-%m-%d) $a $b $days" 
$mysql -e "insert into dataStagDatabase.dataStagTable (as_on_date, hdfs_location, last_modified, no_of_days) values (STR_TO_DATE('$(date +%Y-%m-%d)','%Y-%m-%d'), '$a', STR_TO_DATE('$b', '%Y-%m-%d')", '$days');" -u root 
done < "$filenname" 

ich folgende Fehlermeldung erhalten, habe ich versucht, Insert-Anweisungen auf verschiedene Weise zu modifizieren, kann aber nicht gelingen. freundlicherMysql Insert-Anweisung durch Unix-Shell-Skript

oaisys_datastag.sh: line 19: syntax error near unexpected token `)' 
oaisys_datastag.sh: line 19: `mysql -e "insert into dataStagDatabase.dataStagTable (as_on_date, hdfs_location, last_modified, no_of_days) values (STR_TO_DATE($(date +%Y-%m-%d),'%Y-%m-%d'), $a, STR_TO_DATE($b, '%Y-%m-%d')", $days);" -u root ' 
+1

Auf Ihrer vorletzten Zeile haben Sie eine Öffnung '' 'und zwei schließende' ''. Machen Sie Ihre Angebote konsistent und paaren Sie sie entsprechend. –

+0

extra '" ':' STR_TO_DATE ('$ b', '% Y-% m-% d') "' –

+0

Sie wissen, dass der Wert der Shell-Skriptvariable als Zeichenfolge behandelt wird, wenn sie nur in Anführungszeichen steht. Ich sehe, dass Sie '' '' '' $ b'' verwenden. Schau es dir an 'x = Haddop':' echo "$ x" 'vs' echo '$ x'' –

Antwort

1

Auf dem zweitletzten Zeile helfen, haben Sie eine Öffnung " und zwei " schließen. Machen Sie Ihre Angebote konsistent und paaren Sie sie entsprechend. - Paul L