#1 Le 13/10/2016, à 22:32
- tmyrlln
Inclure la variable $RANDOM dans une commande
Bonsoir,
Pour un projet à réaliser en Informatique qui consiste à créer un petit programme sous C-Shell, j'ai décidé de faire un générateur de mot de passe. Ainsi, j'ai terminé tout ce qui consistait à afficher un menu et à rediriger les entrées mais maintenant j'arrive à la génération. Ce que je veux faire pour générer aléatoirement un mot de passe est que lorsque l'utilisateur entre une longueur pour son mdp, la commande sed va piocher dans un fichier appelé Alphabet.txt (composé des 26 lettres, une par ligne) une ligne au hasard et cela le nombre de fois que la longueur entrée. Ainsi j'obtiens le script suivant :
#!/bin/csh
echo "Entrez la longueur de votre mot de passe :"
set l=$<
repeat $l sed -n $(($RANDOM*26/32767))p Alphabet.txt
et j'aimerais que les caractères affichés par sed soient affichés à la fin et obtenir le mdp, de plus il est évident qu'il y a un problème avec la variable RANDOM (j'obtiens "Illegal variable name) mais j'aimerais qu'elle soient reconnues comme un chiffre lisible par sed.
Merci d'avance pour vos réponses.
Hors ligne
#2 Le 14/10/2016, à 00:54
- Watael
Re : Inclure la variable $RANDOM dans une commande
salut,
RANDOM ne semble pas disponible sous csh.
elle n'existe pas sous dash.
pourquoi csh ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 14/10/2016, à 13:08
- tmyrlln
Re : Inclure la variable $RANDOM dans une commande
Bonjour,
sisi la vaiabe $RANDOM existe bien. Un fichier .csh avec echo $RANDOM affiche bien un chiffre aléatoire.
Pourquoi csh? Parce ce que j'ai l'obligation de le fare en C-Shell.
Hors ligne
#4 Le 14/10/2016, à 13:48
- Watael
Re : Inclure la variable $RANDOM dans une commande
$ readlink -f $(which csh)
/bin/bsd-csh
$ cat >f.csh
#!/bin/csh
echo $RANDOM
$ chmod +x f.csh
$ ./f.csh
RANDOM: Undefined variable.
$
avec /usr/bin/tcsh, c'est pareil !?
Dernière modification par Watael (Le 14/10/2016, à 13:48)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 14/10/2016, à 16:43
- pingouinux
Re : Inclure la variable $RANDOM dans une commande
Bonjour,
avec /usr/bin/tcsh, c'est pareil !?
Oui
En ligne
#6 Le 14/10/2016, à 22:35
- tmyrlln
Re : Inclure la variable $RANDOM dans une commande
Re-Bonsoir,
effectivement il semble que $RANDOM n'existe pas sous csh, du coup il me faudra un autre moyen d'afficher des lignes aléatoires d'un fichier. Une des solutions serait d’utiliser la commande cat.
Hors ligne
#7 Le 14/10/2016, à 22:45
- pingouinux
Re : Inclure la variable $RANDOM dans une commande
La commande sort peut mélanger aléatoirement les lignes d'un fichier :
sort -R fichier
mais chaque ligne n'apparaît qu'une seule fois.
Édité : Tu peux aussi récupérer les lignes une par une, ce qui remédie à la limitation précédente
sort -R fichier | head -1
Ajouté : La commande apg génère des mots de passe aléatoires. Voir le man pour en choisir la longueur et les caractères utilisés.
Dernière modification par pingouinux (Le 14/10/2016, à 23:10)
En ligne
#8 Le 14/10/2016, à 23:02
- tmyrlln
Re : Inclure la variable $RANDOM dans une commande
Merci pour ta réponse,
il semble que cette commande colle parfaitement à ma demande : shuf -n 1 Alphabet.txt
ce qui me donne : repeat shuf -n 1 Alphabet.txt >> mdp.txt
Hors ligne
#9 Le 14/10/2016, à 23:11
- pingouinux
Re : Inclure la variable $RANDOM dans une commande
J'ai complété ma réponse précédente pendant que tu rédigeais la tienne.
En ligne
#10 Le 14/10/2016, à 23:14
- tmyrlln
Re : Inclure la variable $RANDOM dans une commande
ah oui merci,
cette commande intéressante mais vu que c'est un projet à réaliser avec C-shell et le cours, il est nécessaire que j'utilise certaines commandes vues en cours et les redirections.
Mais merci pour tes réponses.
Hors ligne
#11 Le 14/10/2016, à 23:53
- Watael
Re : Inclure la variable $RANDOM dans une commande
à un moment j'ai eu à trouver ceci :
tr -dc a-z < /dev/urandom | head -c 8; echo
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne