Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

Robot tagliaerba Navimow i105E in prova: GPS e videocamera per un prato perfetto
Robot tagliaerba Navimow i105E in prova: GPS e videocamera per un prato perfetto
Abbiamo testato per alcune settimane il Navimow i105E, un robot tagliaerba che unisce il segnale RTK alla visione con videocamera intelligente, per un posizionamento preciso e un taglio impeccabile
Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchine fotografiche 5G?
Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchine fotografiche 5G?
Xiaomi 14 e Xiaomi 14 Ultra sono due dei più performanti cameraphone del 2024. Li abbiamo messi sotto torchio con tutte le prove che effettuiamo solitamente per le recensioni delle fotocamere, per saggiarne il comportamento e avere tutti i dati tecnici per un confronto ragionato
Corsair One i500: un PC gaming potente che può stare anche in salotto
Corsair One i500: un PC gaming potente che può stare anche in salotto
Corsair One i500 è un PC completo molto potente ma che occupa poco spazio e lo fa con stile. Un sistema che può servire tanto per lavorare quanto per giocare, con molti spunti interessanti ma anche qualche neo. Il prezzo è da capogiro.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-10-2006, 12:55   #1
akronim
Senior Member
 
L'Avatar di akronim
 
Iscritto dal: May 2001
Città: Roma
Messaggi: 313
aiuto comandi mysql da bash

devo richiamare da bash un file.sql che ha come contenuto i comandi:

"DROP TABLE IF EXISTS articles;
CREATE TABLE `articles` ( ........
........ ecc"

qual'è il modo più corretto per richiamarlo da bash?

mysql -hlocalhost -unome -ppass my_db -e"????????"

----

pensavo di usare LOAD DATAIN FILE ma quanto ho capito serve per caricare i dati in una tabella, quindi tutt'altra funzione
akronim è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2006, 13:48   #2
akronim
Senior Member
 
L'Avatar di akronim
 
Iscritto dal: May 2001
Città: Roma
Messaggi: 313
trovato !!

mysql -hlocalhost -unome -ppass my_db < /path/al/file.sql

semplice no !!!

adesso il problema è fare un ciclo all'interno del file.sh
che mi legga i file in una cartella e per ogni file mi faccia lo stesso comando sql

bho!!!

se volessi rendere variabili il nome del db e il file.sql così andrebbe bene??

DB=my_db
FILE=/path/al/file.sql #lo devo mettere frà virgolette??

mysql -hlocalhost -unome -ppass $DB < $FILE
akronim è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2006, 20:53   #3
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5691
Quote:
Originariamente inviato da akronim
lo devo mettere frà virgolette??

se contiene degli spazi sì, ma è buona norma metterle sempre.
se devi eseguire più file sql puoi anche mettterli tutti in una variabile e ciclare con un "for".
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2006, 21:19   #4
akronim
Senior Member
 
L'Avatar di akronim
 
Iscritto dal: May 2001
Città: Roma
Messaggi: 313
si effettivamente devo eseguire il comando su più files .sql
e per di più devo fare in modo che più file .sql siano inseriti nello stesso db

db1 = a.sql, b.sql, c.sql
db2 = e.sql, f.sql
db3 = h.sql, n.sql

e così via

ho pensato di mettere i file.sql in cartelle separate che si chiamano con il nome del db far leggere i file e farli inserire nel db che ha il nome della cartella.....

.. ma da quì a realizzarlo e tutta un'altra storia
akronim è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2006, 21:52   #5
akronim
Senior Member
 
L'Avatar di akronim
 
Iscritto dal: May 2001
Città: Roma
Messaggi: 313
più o meno qualcosa del genere

?cerca le cartelle
CARTELLE=array ( nomi cartelle )

for folder = $CARTELLE
do
?leggi i nomi dei file.sql in ogni $folder
FILEDB=array ( file.sql )
for filesql = $FILEDB
do
mysql -hlocalhost -unome -ppass $folder < $filesql
done
done

exit
akronim è offline   Rispondi citando il messaggio o parte di esso
Old 18-10-2006, 08:22   #6
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5691
mettiamo che crei una struttura di direcftory del tipo:

Codice:
DB1/
    file1.sql
    file2.sql
DB2/
    file3.sql
    file4.sql

puoi realizzare quello che vuoi con:


for db in $(ls -d *) ;do for file in $(ls $db) ; do mysql -hlocalhost -unome -ppass $db < $file; done ; done


eseguito nella directory che contiene DB1 e DB2
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 18-10-2006, 16:00   #7
akronim
Senior Member
 
L'Avatar di akronim
 
Iscritto dal: May 2001
Città: Roma
Messaggi: 313
grazie ! funziona alla grande

e se volessi risolvere la cosa con array?
db1= (alfa.sql beta.sql)
db2=(mela.sql pera.sql prugna.sql)

ho letto che bash non supporta array multidimensionali, quindi non posso usare cicli annidati su un unico array
DB= (db1= (alfa.sql beta.sql) db2=(mela.sql pera.sql prugna.sql))

dovrei scrivere i vari arrei in un file;
ma poi come faccio a farlo leggere alla funzione del bash in modo che legga array e non stringhe ??
e che processi riga per riga rispetto alla funzione??
akronim è offline   Rispondi citando il messaggio o parte di esso
Old 18-10-2006, 19:34   #8
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5691
in linea di massima quando posso cerco di evitare gli array con bash, son più una rogna che altro.
io farei così (che non vuol dire che non ci sia una soluzione migliore )

Codice:
listadb="db1 db2"
db1="alfa.sql beta.sql"
db2="mela.sql pera.sql prugna.sql"

for db in $listadb ;do for file in ${!db} ; do mysql -hlocalhost -unome -ppass $db < $file; done; done
anche se hai il difetto di dover aggiornare due variabili ogni volta.
kingv è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Robot tagliaerba Navimow i105E in prova: GPS e videocamera per un prato perfetto Robot tagliaerba Navimow i105E in prova: GPS e v...
Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchine fotografiche 5G? Xiaomi 14 e Xiaomi 14 Ultra: sono davvero macchi...
Corsair One i500: un PC gaming potente che può stare anche in salotto Corsair One i500: un PC gaming potente che pu&og...
realme 12X 5G: ottimo compromesso a meno di 200 euro realme 12X 5G: ottimo compromesso a meno di 200 ...
Recensione Apple iPad Pro M4: è più potente di un MacBook Air M3 Recensione Apple iPad Pro M4: è più...
Gli astronauti cinesi della missione She...
La sonda spaziale NASA OSIRIS-APEX ha su...
Il telescopio spaziale James Webb ha ril...
ASUS annuncia il concorso The Ultimate S...
HYTE presenta THICC Q80 Trio e P60 Duo: ...
LG TONE Free T90S: arrivano in Italia gl...
Resident Evil IX Revenant Shadows appare...
Roborock, nuovi prodotti e strategia per...
YouTube e i problemi di riproduzione vid...
Meta inizierà a breve a usare i post pub...
Concord: il nuovo sparatutto PvP di Sony...
Astro Bot, la nuova esclusiva PS5 arrive...
Logitech potenzia la linea ''Designed fo...
Una coalizione per sfidare NVIDIA NVLink...
Gigabyte B650E Aorus Pro X USB4: AM5 e t...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www1v