Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-07-2004, 16:55   #1
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
bash-ta!!!

sto facendo uno script in bash che dovrebbe fare quanto segue:

l'utente chiama lo script con "nomescript.sh rm pattern" ed esegue rm su tutti i file della dir corrente che hanno una corrispondenza con "pattern".
Niente di trascendentale, soltanto che la cosa (tanto per cambiare) non funzia come dico io. il codice è il seguente:

Codice:
#!/bin/bash

pattern=$2
list=$(ls)
cmd=$1

for file in $list; do
    case $file in
	$pattern)
	    echo "esecuzione comando"
	    $cmd $file;;
    esac
done
il problema è che, se ho due file che si chiamano, ad es., "pippo" e "pippa"
(non mi venivano altri nomi...) l'esecuzioni di

script.sh rm p*

(dove p* è appunto il pattern) mi elimina solo il file "pippa", e non il file "pippo"...pechè?!!?!?!?! (.....serie di convulsioni facciali....)
da quanto ne so, il ciclo for dovrebbe attribuire di volta in volta un nuovo elemento alla variabile $file di quelli presenti in $list (che contiene la lista dei file presenti nella directory), e ciò accade regolarmente...ma allora perchè non esegue "rm" su tutti i file, ma solo sul primo che incontra?
(infatti se rieseguo lo script una volta che il file "pippa" è già stato eliminato, allora mi elimina anche "pippo")...
qualcuno m'aiuti....sigh.......
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2004, 17:14   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Perché Bash espande il pattern per te, e mette i match in $2, $3, ...quindi il _tuo_ $2 corrisponde già al primo match trovato, non alla stringa "pippo*"!
Puoi fare così:
Codice:
#!/bin/bash
cmd=$1
shift
list=$*
for file in $list; do
    $cmd $file
done
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2004, 17:25   #3
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
....aaaaaah...quindi quando eseguo l'assegnazione

pattern=$1

non assegna effettivamente il modello alla variabile pattern, ma gli assegna il primo match che riesce a trovare (quindi "pippa" in tal caso)...
perciò non c'è modo affinchè assegni alla variabile $pattern il modello, se non usare lo shift, per far sì che venga attribuita con list=$* la lista di tutti i file (che fanno il match col pattern), da scadire poi col ciclo for...giusto?
....prima o poi ti faccio un monumento.....
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2004, 17:27   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Sì c'è un modo, devi mettere in escape il carattere jolly. Così il tuo script funziona:
script.sh rm p\*
oppure:
script.sh rm "p*"
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-07-2004, 17:31   #5
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
....per evitare che faccia l'espansione....grazie ancora....

.............due monumenti allora..............
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Le vecchie fotocamere digitali compatte ...
La Cina potrebbe rinviare il ritorno del...
Verizon non è preoccupata della c...
RDNA 5 sulle APU AMD, ma non per tutti: ...
Marvell acquisisce Lumentum per 115 mili...
La febbre dei data center fa impennare i...
ECOVACS T90S OMNI crolla a 499€ su Amazo...
In Cina i camion elettrici hanno gi&agra...
Attacchi hacker ai supermercati in Europ...
I datacenter non piacciono? OpenAI prova...
Cupra Raval sfida BMW, Volvo e le altre:...
BYD supera per la prima volta le 300.000...
Crisi RAM, spunta un prezzo incredibile ...
Ginux, un nuovo kernel compatibile con L...
Gemini Notebook si aggiorna: arrivano i ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v