Étape 12 : Couple de scripts du nouvel an.
Doit être exécuté sur une machine linux avec figlet installé.
mise à jour de $ sudo apt-get
$ sudo apt-get install figlet
Code :
$ alors que [[$(date + %Y) - ne 2012]]; do figlet $(($(date-d 2012-01-01 +%s)-$(date +%s))); dormir 1; claire ; fait ; figlet "Happy New Year!"
-----------------------------------------------------------------
Feux d’artifice :
Fireworks.sh
[code]
#! / bin/bash
lignes = $(tput lignes)
cols = $(tput CLO)
couleurs = (rouge vert bleu violet cyan jaune brun)
lock_file =
lock_file_base = / tmp/$(basename $0.sh)
plusieurs = 0
Si [["$1"]] ; puis
nsingle = $1
Maj
d’autre
nsingle = 10
FI
Si [["$1"]] ; puis
nmultiple = $1
Maj
Si [[$nmultiple - gt 8]] ; puis nmultiple = 8 ; FI
d’autre
nmultiple = 6
FI
fonction colorstr()
{
ligne locale = $1
col local = $2
couleur locale = $3
v local
affaire « $color » dans
rouge) v = 31 ;
v vert) = 34 ;
bleu) v = 32 ;
Purple) v = 35 ;
cyan) v = 36 ;
v jaune) = 33 ;
v brun) = 33 ;
v blanc) = 37 ;
*) v=;;
ESAC
Maj 3
Si [[$multiple - ne 0]] ; puis
Touch $lock_file
alors que [[$(ls $lock_file_base. * 2 >/dev/null | - n 1 de la tête)! = $lock_file]]
faire
sommeil 0,05
fait
FI
tput coupe $row $col
echo - n -e de « \e["$v"m »
jeu -f
echo - n $*
Set + f
Si [[$multiple - ne 0]] ; puis
RM -f $lock_file
FI
}
fonction center_colorstr()
{
ligne locale = $1
couleur locale = $2
Shift 2
s locales = « $* »
slen local = ${#s}
colorstr $row $(((cols / 2)-(slen / 2))) $color "$s"
}
fonction fireworks()
{
ligne locale = $((lignes - 1))
col local = $(((RANDOM % (cols/2)) + (cols / 4)))
hauteur de local = $((RANDOM % rows-2))
point de vue local
h local
local color1 = ${couleurs [$((RANDOM % ${#colors[*]}))]}
couleur2 local = ${couleurs [$((RANDOM % ${#colors[*]}))]}
local color3 = ${couleurs [$((RANDOM % ${#colors[*]}))]}
alors que [[$color1 == $color2 || $color1 == $color3 || $color2 == $color3]]
faire
couleur2 = ${couleurs [$((RANDOM % ${#colors[*]}))]}
color3 = ${couleurs [$((RANDOM % ${#colors[*]}))]}
fait
affaire $((RANDOM % 4)) en
2-0) pente =;
1) pente =-1;
2) pente = 1;
3) inclinaison = 2;
ESAC
Si [[$height - gt 5]] ; puis
h = $height
alors que [[$h - gt 0]]
faire
colorstr $row $col $color1 '.'
laisser ligne--
Si [[$((col + inclinaison)) -ge $((CLO - 3)) || $((col + inclinaison))-le 2]] ; alors casser ; FI
laisser le col += inclinées
Laissez h--
sommeil 0,1
fait
Si [[$((col + inclinaison)) - lt $((CLO - 3)) & & $((col + inclinaison)) - gt 2]] ; puis
h = $((height / 5))
alors que [[$h - gt 0]]
faire
colorstr $row $col $color2 '.'
laisser ligne ++
Si [[$((col + inclinaison)) -ge $((CLO - 3)) || $((col + inclinaison))-le 2]] ; alors casser ; FI
laisser le col += inclinées
Laissez h--
sommeil 0,1
fait
FI
colorstr $((row)) $((col - 1)) $color3 ' ***'
colorstr $((row - 1)) $((col)) $color3 ' *'
colorstr $((row + 1)) $((col)) $color3 ' *'
FI
}
car moi en dollars (seq 1 $nsingle)
faire
claire
feux d’artifice
dormir 1
fait
claire
PID =
car moi en dollars (seq 1 $nmultiple)
faire
Laissez multiple ++
lock_file = $lock_file_base. $i
feux d’artifice &
PID = « $$pids! »
fait
piège "kill-9 $pids 2 >/dev/null" sortie
attendre $pids
dormir 3
claire
center_colorstr $((rows / 2-1)) rouge "L’espoir vous avez apprécié le spectacle!"
center_colorstr $((rows / 2 + 1)) rouge "Happy New year!"
center_colorstr $((rows / 2 + 3)) rouge "Computothought"
ECHO
sommeil 5
claire
vim #: tabstop = 4: shiftwidth = 4: noexpandtab :
# kate : onglet-largeur 4 ; tiret-largeur 4 ; faux de remplacer-tabs ;
[/ code]
Créer un fichier de commandes shell :
$ vim fireworks.sh
Rendez-le exécutable :
$ chmod + x fireworks.sh
Exécutez-le :
$./fireworks.sh