« Cowsay et fortunes » : différence entre les versions

Aller à la navigation Aller à la recherche
aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 28 : Ligne 28 :
<br/>
<br/>
Notons qu'il est possible de se passer de la dépendance '''randomize-lines''' en utilisant ces quelques lignes de code toujours dans notre fichier de configuration du shell :
Notons qu'il est possible de se passer de la dépendance '''randomize-lines''' en utilisant ces quelques lignes de code toujours dans notre fichier de configuration du shell :
  NBRE_COWS=`ls -l /usr/share/cowsay/cows/ | grep -v total | wc -l`
#!/bin/bash
  COWS_RANDOM=`echo $[$RANDOM % ($[$NBRE_COWS - 1] + 1) + 1]`
# on place le nombre total de fichiers *.cows dans NBRE_COWS
  COW_NAME=`ls -l /usr/share/cowsay/cows/ | grep -v total | awk -v COWS_RANDOM_AWK=$COWS_RANDOM 'NR == COWS_RANDOM_AWK {print $NF}' | cut -d"." -f1`
  NBRE_COWS=`ls -1 /usr/share/cowsay/cows/ | wc -l`
# on génère un nombre aléatoire compris entre 1 et NBRE_COWS
  COWS_RANDOM=$(($RANDOM % $NBRE_COWS + 1))
# là il faut comprendre la syntaxe awk :
# NR correspond au numéro de la ligne en cours de traitement par awk.
# NF correspond au dernier champs de la ligne traitée (soit le nom du fichier cow).
# Le NR == COWS_RANDOM_AWK et un critère de sélection conditionnel qui dit :
# "je n'execute l'action {print NF} que si le numéro de ligne est égal à COWS_RANDOM_AWK"
  COW_NAME=`ls -1 /usr/share/cowsay/cows/ | awk -F\. -v COWS_RANDOM_AWK=$COWS_RANDOM 'NR == COWS_RANDOM_AWK {print $1}'`
  cowsay -f $COW_NAME "`fortune -s`"
  cowsay -f $COW_NAME "`fortune -s`"
''si quelqu'un trouve une solution plus simple et sans dépendance je suis preneur''
''si quelqu'un trouve une solution plus simple et sans dépendance je suis preneur''


[[Catégorie:Divers]]
[[Catégorie:Divers]]
reviewer
122

modifications

Menu de navigation