2016-05-17 10 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" 

UNIXシェルスクリプトを通じて声明を挿入し、私はさまざまな方法でINSERT文を変更しようとしたが、成功することができませんでした。 親切に最後の行に2番目にMySQLの私は次のエラーを取得する

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

2行目から最後の行には、1つの '' 'と2つの' ''があります。引用符の一貫性を保ち、適切にペアを作成します。 –

+0

余分な '' ':' STR_TO_DATE( '$ b'、 '%Y-%m-%d') " –

+0

あなたはシェルスクリプトで変数の値がシングルクォートの場合は文字列として扱われることにご注意ください。あなたが '' ':' '$ b''を使っているのを見ています。 これをチェックしてください 'x = Haddop':' echo "$ x" 'vs' echo '$ x'' –

答えて

1

を助け、あなたは"と2つの"を閉じるつの開口部を持っています。引用符の一貫性を保ち、適切にペアを作成します。 - Paul L

関連する問題