Newsgroup: it.comp.os.linux.iniziare
Titolo: Alcune domande (probabilmente) stupide...

1) sto facendo uno script in cui ad un certo punto, si dovrebbe chiedere di 
scegliere fra "s" ed "n", e di conseguenza svolgere un'azione piuttosto che 
un'altra, mentre se premo un altro tasto non dovrebbe succedere nulla: se 
però faccio qualcosa tipo
read scelta
until [ $scelta = "n" -o $scelta = "s" ]
do
  ........
    read scelta
   ......
done
non ho alcun problema se premo un tasto qualsiasi: se premo "s" parte 
l'azione relativa, se premo "n" idem, se premo ad es. g, h, l, z ecc. non 
succede nulla (come previsto), ma se premo INVIO mi appare un messaggio di 
errore (troppi argomenti ecc.). Cosa c'è che non va?
2) dovrei fare con find qualcosa del genere:
    find -exec grep -l "stringa" {} \; solo che "stringa" dovrebbe essere 
immessa da tastiera; se la memorizzo in una variabile "stringa", facendo 
find -exec grep -l "$stringa" {} \; funziona tutto.
avrei però la necessità di fare una cosa di questo tipo:
if [ -z $stringa] ; then opzione="" ; else opzione="-exec grep -l "$stringa" 
{} \;" ; fi ;
find $opzione
se faccio una cosa del genere, mi viene mostrato errore ("manca l'argomento 
di exec"). Cosa manca o è sbagliato?
3) su suggerimento di un utente del NG, per verificare se una stringa è un 
numero, faccio:
echo $stringa | grep "[^0-9]" -c , che funziona alla grande: vorrei sapere 
se è possibile verificare se una stringa è un numero composto ad esempio di 
4 cifre, o comunque da un numero prefissato.
Grazie a tutti 

 Cosa c'è che non va?
Per questo, usa "case".
-- 
Best Regards, Jack
Linux User #264449
Powered by Debian GNU/Linux on AMD64

 4 cifre,
usa #
se VAR="ciao"
allora #VAR = 4

find $opzione
Ne so meno di te ma siccome m'e' capitato di fare la stessa ricerca
dentro i file, mi dici perche' non fai semplicemente cosi'?
$ grep -l pattern path/*
e poi guarda che ci sono le variabili che forse si chiamano standard
cioe' $1...$9 senza bisogno di tutti i casini con stringa e opzione.
-- 
Ciao Minotto

 $ grep -l pattern path/*
perchè non è ricorsivo, immagino

 ha scritto:

grep -R?
Solitamente, quando cerco delle funzioni in dei sorgenti (è un esempio),
utilizzo:
grep -nR pattern *
il risultato è:
file.c:xx: [..]
dove xx è la riga dove è stato trovato <pattern>.
HTH,
David
-- 
 . ''`.  Debian maintainer | 
http://wiki.debian.org/DavidPaleino
 : :'  : Linuxer #334216 --|-- 
http://www.hanskalabs.net/
 `. `'`  GPG: 1392B174 ----|---- 
http://snipr.com/qa_page
   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174

 grep -nR pattern *
sě, ma cosě se nell'albero cě hai un .avi(*) da 1,5G te lo greppi
tutto. Ergo, buonanotte.
Insomma soluzione pessima, lentissima, e che ti pianta la macchina.
La soluzione giusta č col find.
Io ormai sono abituato a fare una pipe con find | xargs |grep 
stesso risultato ed immagino stesso stress del sistema, ma di certo il
grep -r NO! 
a meno che tu non sia un un albero di "soli" file di testo e tutti con la
stessa estensione.
 

 stessa estensione.
Ma infatti io lo uso per cercare nei sorgenti... e di solito non ci sono
*.{avi,mpg,mp3,ogg,*} nei sorgenti :)


stessa estensione.
Forse sapete anche perche' in certi casi puo' servire find invece di
grep? potrebbe darsi (provero') che in questi casi find non habbia la
stessa limitatezza di grep per il numero di file dentro una sola
directory.
Ricordo che infatti grep si era rifiutato con le news - proprio di
icoli, che e' il i gruppo per frequenza penso - ed allora avevo
rimediato mettendoci *1 ... *2 ... invece di farli tutti insieme con *
E a proposito delle limitatezze: ditemi di questo segreto/mistero:
$ ls | wc -l
51588
$ ls 1* | wc -l
-bash: /bin/ls: Lista degli argomenti troppo lunga
0
-- 
Ciao Minotto

 -bash: /bin/ls: Lista degli argomenti troppo lunga 0
mmmm.. sicuro di aver scritto cosě?
ma "ls l*" funzia?

ma "ls l*" funzia?
Si', e perche' non dovrebbe? mi dice al volo che sono 0 che cominciano
con L minuscola, infatti in nomi son tutti numeri di 6 cifre.
Anche con ls 2* funzia, perche' ce ne sono solo 8 o 9 mila, con 1*
invece circa 40 mila.
Io ho pensato che non ce la faccia a caricarli tutti in memoria per
la cernita col pattern, invece senza argomenti li stampa direttamente
a video.
Altrettanto grep... ma lo penso, mica lo so perche' non ce la fa.
-- 
Ciao Minotto

 pensato che non habbia limiti.
Credevo fosse un refuso... ma non può essere un caso... "abbia" non
"habbia"... :o :o :o


"habbia"... :o :o :o
No... te lo spiego: scrivo ha, poi mi viene un brivido di terrore
perche' la prof ci sbranava vivi per il congiuntivo e allora dimentico
di toglierla.
-- 
Ciao Minotto