Pagina 1 di 1

Comportamento comando shuf

Inviato: sab 9 ott 2010, 13:36
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.

Re: Comportamento comando shuf

Inviato: sab 9 ott 2010, 13:40
da Ansa89
A me funziona correttamente:

Codice: Seleziona tutto

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

Re: Comportamento comando shuf

Inviato: sab 9 ott 2010, 13:43
da ulisse89
Allora cosa faccio di sbagliato? Dò lo stesso identico comando.

Re: Comportamento comando shuf

Inviato: sab 9 ott 2010, 13:55
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.

Re: Comportamento comando shuf

Inviato: sab 9 ott 2010, 14:06
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

Re: Comportamento comando shuf

Inviato: sab 9 ott 2010, 14:23
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.