Paso 12: Par de secuencias de comandos de año nuevo.
Se debe ejecutar en una máquina linux con figlet instalado.
actualización de $ sudo apt-get
$ sudo apt-get install figlet
Código:
$ mientras que [[$(fecha + Y %) - ne 2012]]; hacer figlet $(($(date-d 2012-01-01 +%s)-$(date +%s))); sleep 1; claro; hacer; figlet ' feliz año nuevo!'
-----------------------------------------------------------------
Fuegos artificiales:
Fireworks.sh
[código]
#! / bin/bash
filas = $(tput líneas)
cols = $(tput cols)
colores = (rojo verde azul púrpura cian amarillo marrón)
lock_file =
lock_file_base = / tmp/$(basename $0.sh)
múltiples = 0
Si [["$1"]]; entonces
nsingle = $1
cambio
otra cosa
nsingle = 10
fi
Si [["$1"]]; entonces
nmultiple = $1
cambio
Si [[$nmultiple - gt 8]]; entonces nmultiple = 8; fi
otra cosa
nmultiple = 6
fi
función colorstr()
{
local fila = $1
local col = $2
color local = $3
local v
caso "$color" en
v rojo) = 31;
v verde) = 34;
v azul) = 32;
púrpura) v = 35;
Cyan) v = 36;
v amarillo) = 33;
v marrón) = 33;
blanco) v = 37;
*) v=;;
ESAC
cambio 3
Si [[$multiple - ne 0]]; entonces
toque $lock_file
mientras que [[$(ls $lock_file_base. * 2 >/dev/null | cabeza - n 1)! = $lock_file]]
hacer
sueño 0.05
hecho
fi
tput Copa $row $col
echo - n -e "\e["$v"m"
-c
echo - n $*
Set + f
Si [[$multiple - ne 0]]; entonces
RM -f $lock_file
fi
}
función center_colorstr()
{
local fila = $1
color local = $2
turno 2
s local = "$*"
slen local = ${#s}
$ colorstr $row (((cols / 2)-(slen / 2))) $color "$s"
}
función fireworks()
{
local fila = $((filas - 1))
local col = $(((RANDOM % (cols/2)) + (cols / 4)))
altura del local = $((RANDOM % rows-2))
inclinación local
local h
local color1 = ${colores [$((RANDOM % $#colors[*]})) {]}
color2 local = ${colores [$((RANDOM % $#colors[*]})) {]}
color3 local = ${colores [$((RANDOM % $#colors[*]})) {]}
mientras que [[$color1 == $color2 || $color1 == $color3 || $color2 == $color3]]
hacer
color2 = ${colores [$((RANDOM % $#colors[*]})) {]}
color3 = ${colores [$((RANDOM % $#colors[*]})) {]}
hecho
caso $((RANDOM % 4)) en
Inclinación 0) =-2;
1) inclinación =-1;
2) inclinación = 1;
3) inclinación = 2;
ESAC
Si [[$height - gt 5]]; entonces
h = $height
mientras [[$h - gt 0]]
hacer
colorstr $row $col $color1 '.'
que fila--
Si [[$((col + inclinación)) -ge $((cols - 3)) || $((col + inclinación))-le 2]]; luego de la rotura; fi
dejar col += inclinado
que h--
sueño 0.1
hecho
Si [[$((col + inclinación)) - lt $((cols - 3)) & & $((col + inclinación)) - gt 2]]; entonces
h = $((height / 5))
mientras [[$h - gt 0]]
hacer
colorstr $row $col $color2 '.'
que fila ++
Si [[$((col + inclinación)) -ge $((cols - 3)) || $((col + inclinación))-le 2]]; luego de la rotura; fi
dejar col += inclinado
que h--
sueño 0.1
hecho
fi
colorstr $((row)) $((col - 1)) $color3 ' ***'
$ colorstr ((fila - 1)) $((col)) $color3 ' *'
colorstr $((row + 1)) $((col)) $color3 ' *'
fi
}
para que en $(seq 1 $nsingle)
hacer
claro
fuegos artificiales
sueño 1
hecho
claro
PID =
para que en $(seq 1 $nmultiple)
hacer
permiten múltiples ++
lock_file = $lock_file_base. $i
fuegos artificiales &
PID = "$pids $!"
hecho
trampa "kill-9 $pids 2 >/dev/null" salida
esperar $pids
sueño 3
claro
center_colorstr $((rows / 2-1)) roja "Espero que disfrutaron el espectáculo!"
center_colorstr $((rows / 2 + 1)) rojo "Feliz nuevo año!!!!"
center_colorstr $((rows / 2 + 3)) rojo "Computothought"
Eco
sueño 5
claro
vim #: tabstop = 4: especificado tabulación = 4: noexpandtab:
# kate: ficha-ancho 4; guión-ancho 4; falso pestañas reemplazar;
[/ code]
Crear el archivo por lotes de shell:
$ vim fireworks.sh
Hacerlo ejecutable:
$ chmod + x fireworks.sh
Ejecutar:
$./fireworks.sh