[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: alien (was: compilare un programma)



On Tue, 11 Jun 2002 13:17:32 +0100
"gianni" <savagnolu@tiscali.it> wrote:

> come si fa ad indicare tutti
>  file contenuti in una directory? (questo vorrei saperlo in generale,
>  anche se non fosse possibile con alien)

Allora, molti comandi (ma non tutti, nel qual caso si usa un secondo
metodo che dico più sotto) accettano più di un file sulla riga di
comando. In questo caso, se tu dai

comando *

Il "pattern" * viene espanso dalla shell in "tutti i file nella
directory corrente".

Nota che il fatto che il pattern viene espanso dalla shell significa
esattamente che il comando non viene chiamato con "*" come argomento, ma
direttamente con il risultato della "espansione del pattern" cioé della
sostituzione dell'* con "tutti i file nella directory corrente"

I pattern sono utili anche quando, per esempio, vuoi selezionare tutti i
.zip di una directory

ls *.zip

oppure

cp *.zip altradirectory

E anche quando vuoi per esempio tutti i file che iniziano per a,per b,
per c oppure per e (questo con una interfaccia grafica é un po'
difficilotto da fare :) 

ls [a-ce]* 

nota che [a-c] significa "le lettere da 'a' a 'c'" e che nelle parentesi
quadre ci va una lista di lettere o di intervalli di lettere.

Non so se ti é tutto chiaro ma prima o poi lo sarà. "man bash" potrebbe
aiutarti, devi leggere la sezione "espansione di percorso" che trovi
premendo "/" e poi scrivendo \* ... oppure puoi usare konqueror e
digitare man:bash nella riga dell'URL

=== SE IL COMANDO NON SUPPORTA FILE MULTIPLI ?

Se il comando non supporta file multipli sulla riga di comando, almeno
in teoria dovresti scrivere il comando una volta per ogni argomento. Ma
la bash é un linguaggio di programmazione completo (anche se con
dynamic-binding, ma per una shell é comodo), e quindi hai a disposizione
costrutti come il for e il while. Nel nostro caso, per eseguire un
comando che può ricevere solo un argomento alla volta, puoi fare un for:

for f in *; do comando $f;done

Ecco spiegato come funziona: quando scrivo "for NOMEVARIABILE in
PATTERN; do QUALCOSA;done" il pattern "PATTERN" viene espanso, e il
risultato viene diviso in parole che vengono assegnate ad una ad una
alla variabile "VARIABILE". Dentro "COMANDO" posso quindi usare
"$VARIABILE" per avere il valore dell'i-esimo elemento, visto che il for
ripete il comando per ogni elemento.

Spero di essermi spiegato, comunque trovi anche questo nel man di bash,
che ti consiglio di leggere, anche una pagina al giorno.

Senti un po' ma per installare KDE non é meglio che cerchi, se ci sono
non lo so, i deb per potato? Non credo che avrai grosse soddisfazioni
con KDE2.01, era pesante e buggato. E poi é per red-hat rischi che non
funzioni per niente. Meglio a quel punto ricompilare i sorgenti debian.

ciao 

Vincenzo


-- 
To UNSUBSCRIBE, email to debian-italian-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: