Repository 32bit  Forum
Repository 64bit  Wiki

Comportamento comando shuf

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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.

Comportamento comando shuf

Messaggioda ulisse89 » sab ott 09, 2010 12:36

Ciao ragazzi. Vorrei chiedere un chiarimento riguardo il comando "shuf". Lo sto usando in questo modo:
Codice: Seleziona tutto
 ls DIR | shuf -n1

per farmi dare un nome casuale di file dentro a una directory.

Il problema è che se dò tale comando da bash direttamente, allora il risultato è quello giusto ( cioè un nome di file ).
Se invece inserisco il risultato dentro a una variabile, ottengo nient'altro che un numero.
Codice: Seleziona tutto
RANDOM=$( ls | shuf -n1)
echo $RANDOM
18881

Mi sapreste dire come mai? E come posso risolvere?
Grazie.
Avatar utente
ulisse89
Packager
Packager
 
Messaggi: 644
Iscritto il: sab gen 17, 2009 12:53
Località: Bologna
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce

Re: Comportamento comando shuf

Messaggioda Ansa89 » sab ott 09, 2010 12:40

A me funziona correttamente:
Codice: Seleziona tutto
$a=`ls | shuf -n1`
$echo $a
nome_file_casuale
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2621
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.1-ck1
Desktop: XFCE 4.6.1

Re: Comportamento comando shuf

Messaggioda ulisse89 » sab ott 09, 2010 12:43

Allora cosa faccio di sbagliato? Dò lo stesso identico comando.
Avatar utente
ulisse89
Packager
Packager
 
Messaggi: 644
Iscritto il: sab gen 17, 2009 12:53
Località: Bologna
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce

Re: Comportamento comando shuf

Messaggioda Ansa89 » sab ott 09, 2010 12:55

Non saprei :roll: .
Ho provato ad usare la tua stessa sintassi e l'output in effetti è cambiato: ogni tanto capita che la variabile contenga più di un solo nome di file; sono confuso :? .

Prova ad usare la mia sintassi e vedi se cambia qualcosa anche a te.
Avatar utente
Ansa89
Iper Master
Iper Master
 
Messaggi: 2621
Iscritto il: mer ago 29, 2007 16:57
Località: Modena
Nome Cognome: Stefano Ansaloni
Slackware: 13.1
Kernel: 3.16.1-ck1
Desktop: XFCE 4.6.1

Re: Comportamento comando shuf

Messaggioda targzeta » sab ott 09, 2010 13:06

Solo una scelta infelice per il nome della variabile :)

http://digilinux.altervista.org/random.html

O anche dal man di bash:
Codice: Seleziona tutto
 RANDOM Each time this parameter is referenced, a random integer between 0 and 32767 is generated.
       The sequence of random numbers  may  be initialized  by assigning a value to RANDOM.
       If RANDOM is unset, it loses its special properties, even if it is subsequently reset.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6157
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: Comportamento comando shuf

Messaggioda ulisse89 » sab ott 09, 2010 13:23

spina ha scritto:Solo una scelta infelice per il nome della variabile :)

http://digilinux.altervista.org/random.html

O anche dal man di bash:
Codice: Seleziona tutto
 RANDOM Each time this parameter is referenced, a random integer between 0 and 32767 is generated.
       The sequence of random numbers  may  be initialized  by assigning a value to RANDOM.
       If RANDOM is unset, it loses its special properties, even if it is subsequently reset.

Emanuele

Ahah. Questa proprio mi è totalmente nuova e non l'avrei mai scoperto da solo.
Grazie Emanuele.
Avatar utente
ulisse89
Packager
Packager
 
Messaggi: 644
Iscritto il: sab gen 17, 2009 12:53
Località: Bologna
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti