894 private links
J'ai régulièrement le besoin d'écrire des scripts shell un peu évolués. Il y a quelques mois, j'ai commencé à travailler sur un modèle que je met régulièrement à jour. Aujourd'hui, j'ai travaillé sur la couche pour gérer les logs et c'est pourquoi j'écris cet article.
Ce modèle contient les fonctions
usage
ethelp
pour décrire le fonctionnement du programme. La fonctionon_interrupt
permet de gérer le signalSIGINT
quand le programme est interrompu.La fonction
main
est la fonction qui contient le code principal du script. Elle contient la gestion des paramètres passés au script. Par défaut, plusieurs y sont déjà intégrés :-l
pour définir le niveau de log désiré et-h
pour afficher l'aide.Enfin, il y a la fonction
log
pour afficher des messages de debug avec différents niveaux de criticité. Cela permet de générer des messages qui seront affichés ou pas selon les besoins. Les messages sont colorés selon le niveau de criticité et ils sont redirigés versstderr
. Il est Ă©galement possible d'ajouter la date.
neutre='\e[0;m'
noir='\e[0;30m'
gris='\e[1;30m'
rougefonce='\e[0;31m'
rose='\e[1;31m'
vertfonce='\e[0;32m'
vertclair='\e[1;32m'
orange='\e[0;33m'
jaune='\e[1;33m'
bleufonce='\e[0;34m'
bleuclair='\e[1;34m'
violetfonce='\e[0;35m'
violetclair='\e[1;35m'
cyanfonce='\e[0;36m'
cyanclair='\e[1;36m'
grisclair='\e[0;37m'
blanc='\e[1;37m'
normal='\033[0m'
gras='\033[1m'
fin='\033[2m'
italic='\033[3m'
souligne='\033[4m'
flash='\033[5m'
inverse='\033[7m'
invisible='\033[8m'
echo -e "${rougefonce}Hello${neutre} ${jaune}World${neutre}"
echo -e "${gras}Hello${normal} ${flash}World${normal}"
Modern UNIX shells like bash (default on Linux) and zsh (default on macOS) keep a history of all the commands you enter. The easiest way to access this history is by pressing the up and down cursor keys to browse through the last commands.
But this is only the tip of the iceberg. There are many more powerful history features that are easy to overlook. Learning them and making them second nature will help you to become much faster with a shell.
The .bashrc is a standard file located in your Linux home directory.
In this article I will show you useful .bashrc options, aliases, functions, and more.
Expanding files, parameters, or the history using Zsh is the fastest way to get quickly what you want, without writing boring scripts.
9 Lesser-Known Zsh Tips and Tricks