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.
Rispondi
wacco
Linux 0.x
Linux 0.x
Messaggi: 33
Iscritto il: mer 10 dic 2003, 0:00
Contatta:

Altro problema di scripting..

Messaggio 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>

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

Altro problema di scripting..

Messaggio da wacco »

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

Avatar utente
Loris
Admin
Admin
Messaggi: 7730
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Altro problema di scripting..

Messaggio 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>
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

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

Altro problema di scripting..

Messaggio 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>

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

Altro problema di scripting..

Messaggio 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>

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

Altro problema di scripting..

Messaggio 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>

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

Altro problema di scripting..

Messaggio da useless »

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

Rispondi