Pagina 1 di 1

Altro problema di scripting..

Inviato: lun 15 dic 2003, 20:45
da wacco
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>

Altro problema di scripting..

Inviato: lun 15 dic 2003, 20:57
da wacco
Scusate! Primo problema risolto..
<BR> Marco.<br>

Altro problema di scripting..

Inviato: lun 15 dic 2003, 21:17
da Loris
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>

Altro problema di scripting..

Inviato: lun 15 dic 2003, 21:20
da wacco
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>

Altro problema di scripting..

Inviato: mar 16 dic 2003, 23:10
da useless
<!-- 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>

Altro problema di scripting..

Inviato: mer 17 dic 2003, 8:34
da wacco
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>

Altro problema di scripting..

Inviato: gio 18 dic 2003, 9:09
da useless
cambia il for in for i in `ls -l`.<br>