|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | ||
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
[SHELL] + comandi x linea è possibile?
Esperti di Shell a me!
Dite che è possibile dare + comandi x linea di comando? Ne sto parlando QUI, perchè poi vorrei mandare la riga in esecuzione con questo codice C: Quote:
Tutto questo perchè devo creare dinamicamente una cartella data contenente altre cartelle che si verranno a creare, es: canale1, canale2, etc... IN SOSTANZA Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 12-07-2007 alle 14:24. |
||
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Fammi capire, vuoi che "mkdir" ti crei una gerarchia di directory multipla? (tipo /data/canale1 crea prima "/data" e poi "/data/canale1")
In quel caso basta dare "mkdir -p ./data/canale1" L'opzione -p fa proprio quello che cerchi. Per lanciare + comandi da linea di comando basta comunque usare l'espressione "&&" tipo : "tar xvzf programma-src.tar.gz && cd programma-src && ./configure && make && make install" Scompatta , configura, compila e installa un programma Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
In pratica tutto nasce da questo POST:
[C] System: "rm" di Linux diventa "del" su Win32?! Ho fatto 1 "quasi-parser" RSS. Cosa voglio? Voglio che ora il parser crei dentro la cartella "data" le cartelle "canaleX" ogni qual volta incotra 1 canale RSS. Ovviamente devo dargli un comando che con l'automatizzazione del programma non crei side-effect come piantarsi o far crashare il programma principale. In sostanza ogni qual volta trovo 1 canale vorrei lanciare un "mkdir ./data/canaleX" dove mettere tutto il contenuto del canaleX.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 12-07-2007 alle 15:14. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Se per "gerarchia di directory multipla" intendi che da FileSystem pulito mi crei la cartella "canale1" dentro la cartella "data" si.
Ma al ciclo seguente ci sarà "canale2" da creare dentro "data".
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Oct 2000
Città: Svizzera - Lugano
Messaggi: 122
|
non mi è chiarissimo cosa vuoi ottenere ma forse...
prova a lanciare: > mkdir -p data/canale{1,2,3}/ e guarda cosa succede, forse è cio che cerchi! ciao! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Eh quello che chiedo è aimè sul confine programmazione/linux.
Voglio lanciare 1 comando shell con la funzione di C chiamata: system("STRINGA DI COMANDO"); - Quando lo lancio il comando? - Quando incontro un TAG-RSS. - Che comando devo lanciare? - Un comando che mi crei la cartella "canale1" dentro una cartella "data". - Accorgimenti? - Che alla II volta che ripete il loop la cartella "data" esistente non venga rimossa, ma solo riempita con un'altra cartella "canale2" e così via... [NB] Al (loop = 0) la cartella "data" NON esiste e devo crearla. --- Adesso dovrei essere stato esaustivo no?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 12-07-2007 alle 15:28. |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1868
|
Quote:
comunque se esegui mkdir -p data/dirA e poi mkdir -p data/dirB ottieni una cartella data con dentro dirA e dirB, se poi esegui mkdir -p data/dirC in data ci sarà anche dirC e così via... eseguire mkdir -p data/dirA se data/dirA esiste già non è un problema, non solleva errori.
__________________
[ W.S. ] |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
![]() Mi sento mongolino. ![]() Sono su WinXP e sto usando il MinGW ovvero il compilatore GCC x Winzoz. Perchè NON riesco a creare ste cacchio di direcotry? E' una limitazione della mia piattaforma?! ![]() Codice:
void scaricare_enclosure(char *input)
{
extern char enclosure_nomefile[];
extern int canale_numero, count_item;
char comando[SIZEBUF];
// inizializzo la stringa vuota col carattere \0
memset(comando, 0, SIZEBUF);
sprintf(comando, "mkdir -p data/canale%d", canale_numero);
printf("Lanciato comando> %s\n", comando);
system(comando);
// inizializzo la stringa vuota col carattere \0
memset(comando, 0, SIZEBUF);
sprintf(comando, "wget \"%s\" -T 30 -o ./log/enclosure_item%d.log -O ./data/canale%d/%s", input, count_item, canale_numero, enclosure_nomefile);
printf("Lanciato comando> %s\n", comando);
system(comando);
}
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 12-07-2007 alle 18:06. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
A chi interessa, pare che ho risolto così:
Codice:
// inizializzo la stringa vuota col carattere \0
memset(comando, 0, SIZEBUF);
#ifdef WIN32
printf("Rilevato SO Windows.\n");
sprintf(comando, "md .\\data\\canale%d", canale_numero);
#else
printf("Rilevato SO non Windows.\n");
sprintf(comando, "mkdir /p ./data/canale%d", canale_numero);
#endif
printf("Lanciato comando> %s\n", comando);
system(comando);
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Oct 2000
Città: Svizzera - Lugano
Messaggi: 122
|
|
|
|
|
|
|
#11 | ||
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Ora lo lancio così: Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:03.























