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.
Rispondi
Avatar utente
ulisse89
Packager
Packager
Messaggi: 643
Iscritto il: sab 17 gen 2009, 12:53
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce
Località: Bologna

Comportamento comando shuf

Messaggio da ulisse89 »

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
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Comportamento comando shuf

Messaggio da Ansa89 »

A me funziona correttamente:

Codice: Seleziona tutto

$a=`ls | shuf -n1`
$echo $a
nome_file_casuale

Avatar utente
ulisse89
Packager
Packager
Messaggi: 643
Iscritto il: sab 17 gen 2009, 12:53
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce
Località: Bologna

Re: Comportamento comando shuf

Messaggio da ulisse89 »

Allora cosa faccio di sbagliato? Dò lo stesso identico comando.

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Comportamento comando shuf

Messaggio da Ansa89 »

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
targzeta
Iper Master
Iper Master
Messaggi: 6629
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: Comportamento comando shuf

Messaggio da targzeta »

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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
ulisse89
Packager
Packager
Messaggi: 643
Iscritto il: sab 17 gen 2009, 12:53
Nome Cognome: Riccardo
Slackware: 13.0
Kernel: 2.6.29.6
Desktop: Xfce
Località: Bologna

Re: Comportamento comando shuf

Messaggio da ulisse89 »

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.

Rispondi