Ho cercato di ottenere uno script di shell (bash) per inserire una riga in un database remoto, ma ho avuto qualche problema :(Utilizzando script di shell per inserire i dati in database MySQL remoto
Il Lo script ha lo scopo di caricare un file su un server, ottenere un URL, HASH e un file, connettersi a un database mysql remoto e inserire i dati in una tabella esistente. Ho funzionato fino al bit del database MySQL remoto.
Ecco come si presenta:
#!/bin/bash
zxw=randomtext
description=randomtext2
for file in "[email protected]"
do
echo -n *****
ident= *****
data= ****
size=` ****
hash=`****
mysql --host=randomhost --user=randomuser --password=randompass randomdb
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
echo "done"
done
sono un noob totale alla programmazione così y: P
Ad ogni modo, ho aggiunto il \ per sfuggire alle parentesi mentre ricevevo degli errori. Come è adesso, lo script funziona fino a quando non si connette al database mysql. Si collega semplicemente al database mysql e non esegue il comando di inserimento (e non so nemmeno se il comando di inserimento funzionerebbe in bash).
PS: Ho provato entrambi i comandi mysql dalla riga di comando uno per uno, e hanno funzionato, anche se ho definito l'hash/file/dimensione e non ho avuto l'escape "\".
Ad ogni modo, cosa ne pensate voi ragazzi? È ciò che sto cercando di fare anche possibile? Se é cosi, come?
Qualsiasi aiuto sarebbe apprezzato :)
Ottenere questo errore: riga 22: avviso: qui-documento alla riga 19 delimitato da fine file (voluto 'EOF ') riga 23: riga 23: errore di sintassi: fine imprevista del file – lelouch
@lelouch - sei uscito fuori da "EOF" nella terza riga sopra. È importante implementare tutta la soluzione, non solo la prima metà. –
Hmm nah, ho aggiunto chiaramente il << EOF nella riga mysql e un altro EOF in una nuova riga dopo l'inserto. Qualche idea su cosa è sbagliato? – lelouch