Altro problema di scripting..

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
wacco
Linux 1.0
Linux 1.0
Messaggi: 33
Iscritto il: mer dic 10, 2003 0:00
Contatta:

Altro problema di scripting..

Messaggioda wacco » lun dic 15, 2003 20:45

Salve a tutti! <BR> Dato che siete molto gentili e disponibili vi assillo ancora con problemi di scripting! Problema: come faccio ad associare ad una variabile il nome di un file che contiene anche spazi? Cioè se per esempio eseguo <BR> for i in `ls *` <BR> do <BR> echo $i <BR> done <BR> <BR>a patto che la sintassi sia corretta, non mi escono i nomi dei file come sono effettivamente presenti nella dir, ma mi separa le parti dei nomi. Cioè se ho un file che sia chiama "un bel film.avi" mi da come output <BR>un <BR>bel <BR>film.avi <BR>Come faccio a evitare questo? <BR> Grazie ancora, <BR> Marco. <BR><BR>[ Questo Messaggio è stato Modificato da: wacco il 15-12-2003 20:47 ]<br>

wacco
Linux 1.0
Linux 1.0
Messaggi: 33
Iscritto il: mer dic 10, 2003 0:00
Contatta:

Altro problema di scripting..

Messaggioda wacco » lun dic 15, 2003 20:57

Scusate! Primo problema risolto.. <BR> Marco.<br>

Avatar utente
Loris
Admin
Admin
Messaggi: 7666
Iscritto il: lun mar 31, 2003 0:00
Nome Cognome: Loris Vincenzi
Slackware: 14.1
Kernel: 3.10.17
Desktop: Kde 4.10.5
Località: Gradisca D'Isonzo
Contatta:

Altro problema di scripting..

Messaggioda Loris » lun dic 15, 2003 21:17

IFS=: <BR> for i in `ls *` <BR> <BR>Scusa non avevo visto il reply :-? <BR><BR>[ Questo Messaggio è stato Modificato da: Lorys il 15-12-2003 21:18 ]<br>
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

wacco
Linux 1.0
Linux 1.0
Messaggi: 33
Iscritto il: mer dic 10, 2003 0:00
Contatta:

Altro problema di scripting..

Messaggioda wacco » lun dic 15, 2003 21:20

Ok! Altro problema.. Se eseguo questo script: <BR>#|/bin/bash <BR>count=`ls | wc -l` <BR>for i in "*.*" <BR> do <BR> ls $i <BR> echo "Posizione: " <BR> read posizione <BR> if let posizione>$count <BR> then echo "Hei!!!Sei fuori!?!" <BR> exit 1 <BR> fi <BR> done <BR>Prima mi stampa tutti i file nella directory, ed io vorrei lavorare su un file alla volta, e poi mi salva la variabile count con il suo valore. Il mio scopo sarebbe creare uno script che data una lista di file contenuti in una directory mi chieda la posizione cardianle che voglio associare ad ogni file e di conseguenza ne modifichi il nome. Se per esempio avessi una serie di mp3 non numerati vorrei poterli numerare a piacere. Lo script è solo l´inizio, non ho ancora pensato alla continuazione! <BR>Grazie ancora, <BR> Marco. <BR> <br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom ott 12, 2003 0:00
Località: A place where the streets have no name
Contatta:

Altro problema di scripting..

Messaggioda useless » mar dic 16, 2003 23:10

<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-1>Quote:</font><HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>#!/bin/bash <BR>count=`ls | wc -l` <BR>for i in "*" <BR> do <BR> echo $i <BR> echo "Posizione: " <BR> read posizione <BR> if [ $posizione -gt $count ] <BR> then <BR>echo "Hei!!!Sei fuori!?!" <BR> exit 1 <BR>else <BR>mv $i "$posizione-$i" <BR> fi <BR> done</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End --> <BR> <BR>DOVREBBE funzionare ;-).<br>

wacco
Linux 1.0
Linux 1.0
Messaggi: 33
Iscritto il: mer dic 10, 2003 0:00
Contatta:

Altro problema di scripting..

Messaggioda wacco » mer dic 17, 2003 8:34

Grazie di nuovo per il tuo aiuto..Anche con le tue modifiche però al momento dell´ esecuzione di ´echo $i´ mi stampa tutto il contenuto della directory, come se non fose nel ciclo!! Ma i cicli non sono fatti apposta per permettere routine di questo tipo? Da quel che mi ricordo di C.. <BR> Marco<br>

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom ott 12, 2003 0:00
Località: A place where the streets have no name
Contatta:

Altro problema di scripting..

Messaggioda useless » gio dic 18, 2003 9:09

cambia il for in for i in `ls -l`.<br>


Torna a “Gnu/Linux in genere”

Chi c’è in linea

Visitano il forum: Google [Bot] e 1 ospite