Tixlegeek's DevBlog Code, Gringo, Silicium

qrcode

-

Scripts bash, et goodies CLI

Salutations!

publiphone 1

Salutations!

Aujourd'hui, je me suis dit que j'allais vous partager certains des scripts BASH que j'utilise, que ce soit pour rigoler ou pour améliorer un peu mon confort de technicien.

Pourcentage de la semaine écoulée

Eh oui, parfois le temps est long. Dans cette optique, on peu facilement savoir ou on en est, en calculant l'avancement de la semaine sous forme de pourcentage:

echo $(($(date +'%w')*100/7))"%"
Alors bien sûr, ça c'est la version rapide. Mais avec un peu plus d'huile de coude, on peut aussi l'afficher sous forme de barre de progression:
#!/bin/bash
WIDTH=20
PERCENT=$((($(date +'(%w-1)*24')+$(date +"%-H"))*100/168 ))
WPERCENT=$(($PERCENT*$WIDTH/100))
FULLCHAR="█"
EMPTYCHAR="░"
echo "Avancement de la semaine:"
echo -n "["
for i in $(seq 0 1 $WIDTH); do
	[[ $i -gt $WPERCENT ]] && echo -n $EMPTYCHAR || echo -n  $FULLCHAR
done
tput sc
echo -ne "\033["$(( ( $WIDTH + ${#PERCENT} ) / 2 ))"D"$PERCENT"%"
tput rc
echo "]"

Ce qui donne quelquechose comme ça:

Avancement de la semaine:
[████████░░38%░░░░░░░░]

Ou si vous êtes sucrés vous pouvez aussi utiliser d'autres types de rendu:

  • Avec whiptail pour l'avoir en curses:

    whiptail --gauge "Avancement de la semaine:" 6 60 $(($(date +'%w')*100/7))
  • Avec Zenity pour l'avoir en mode GUI:

    zenity --progress --title='Avancement de la semaine:' --percentage=$(($(date +'%w')*100/7))

Être alerté quand le réseau saute.


while true; do
ping 8.8.8.8 -c1 -w1 >/dev/null || zenity --error --title "Connexion perdue" --text "Le reseau à sauté :$(date)";
sleep 1;
done

Créer une lookup table de sin/cos pour du C

Ça c'est du vieux code, mais, je m'en sert toujours, du coups je vous le met là.

export LC_NUMERIC="en_US.UTF-8" # use . instead of ,
# Increments between 0 ans 2pi
RESOLUTION=0.01
# Max value
MAX=1024

O=0;
STRING=""

for i in `seq 0 $RESOLUTION 1`;
	do N=$(echo "scale=5; b=$MAX/2; c($i*4*a(1)*2 )*b+b" | bc -l | cut -d"." -f1 );
	STRING=$(echo -e "$STRING$N,\t")
	O=$(($O+1))
done
# Remove last coma from the string list
CLEANSTRING=$(echo $STRING | sed 's/,\([^,]*\)$/ \1/')
# Output the code
echo "uint8_t COS[$O]={ $CLEANSTRING };" | fold -w80 -s

hpphckng!