Débugue tes humanités Saison 2
Séance 03 - Bash ou comment industrialiser le terminal
Découverte de Bash, création de quelques scripts, détournements créatifs.
Chaire de recherche du Canada sur les écritures numériques, Bibliothèque des lettres et des sciences humaines, Ouvroir d'histoire de l'art et de muséologie numérique. — antoine.fauchie@umontreal.ca
Qu’est-ce que Bash ?
Cas d’usages 1 : créer et convertir des fichiers
Cas d’usages 2 : création et exercice
1. Qu’est-ce que Bash ? #
Bash (Bourne-Again shell) est l’interpréteur en ligne de commande d’Unix (Linux, Mac)
un script Bash ou un script shell est un fichier (en .sh
) qui comporte une ou plusieurs instructions ou commandes
ces commandes sont executées les unes à la suite des autres
c’est un très bon moyen d’automatiser des tâches
2. Cas d’usages 1 : créer et convertir des fichiers #
vérifier que vous disposez de pandoc
créer un fichier auto.sh
créer une commande pandoc pour convertir du Markdown vers du HTML
dans cette commande, remplacer le nom du fichier par $1
tester le script
3. Cas d’usages 2 : création et exercice #
3. Cas d’usages 2 : création et exercice #
Atelier de création dans le cours FRA3715 Écriture et nouveaux médias (2021) #
Performativité de l’écriture numérique
Fonctionnement interactif d’un récit
Écrire avec/selon la machine
Dans le cadre du cours FRA3715 Écriture et nouveaux médias (session Hiver 2021), une séance a été consacrée à « l’écriture par écriture » et a été l’occasion d’un atelier de création avec Bash.
3. Cas d’usages 2 : création et exercice #
Programmer un récit en Bash #
Possibles inspirations :
Test de Turing
Temps du récit
Qui-est-ce
Syndrome de la page blanche
Les possibles sujets d’inspiration fournis aux étudiant·e·s (qui peuvent aussi servir lors de l’excercice) ont été les suivants :
Test de Turing : Construire un dialogue avec ma machine
Temps du récit : Travailler la latence d’apparition du texte : soit comme rythme poétique/suspens/dysfonctionnement
Qui-est-ce : Construire le récit d’une recherche d’information/identité par des requête
Syndrome de la page blanche : Construire le récit d’une écriture qui n’avance pas, qui dysfonctionne
3. Cas d’usages 2 : création et exercice #
Attention : Online Bash Shell n’a pas de sauvegarde automatique sans création de compte
ou
Création d’un fichier .sh puis bash fichier.sh
dans le terminal #
–> Comme Online Bash Shell ne permet pas la sauvegarde sans création de compte, il faut donc soit téléchager le script avant de fermer la fenêtre Online Bash Shell, soit sauvegarder le script dans un autre document avec l’extension .sh puis le lancer dans le terminal avec la commande : bash fichier.sh
3. Cas d’usages 2 : création et exercice #
Quelques commandes #
Générer du texte
Jouer avec les commandes de base
Créer des rythmes
Aligner/Couper/Renverser
Texte en interaction
3. Cas d’usages 2 : création et exercice #
1. Générer du texte #
echo "texte";
ou définir par une valeur :
valeur="texte";
echo ${valeur}
ou afficher la valeur dans un texte :
valeur="texte";
echo "je suis du ${valeur}"
Attention à ne pas insérer d’espace avant ou après le “=” de la valeur.
3. Cas d’usages 2 : création et exercice #
2. Jouer avec les commandes de bases #
Afficher la date :
horaire=`date`
echo "Jounal de bord du $horaire"
ou
horaire=$(date)
echo "Jounal de bord du $horaire"
Afficher la situation :
lieu=`pwd`
echo "Je me trouve toujours à bord du $lieu"
Demander mon identité : (hors interface en ligne)
identite=`whoami`
echo "Sur mon uniforme, une étiquette qui porte le nom de $identite"
Selon les configurations du terminal, d’autres commandes peuvent être impliquées si elles sont installées au préalable (ce qui n’est pas possible sur l’environnement en ligne d’Online Bash Shell). Typiquement la commande whoami
ne fonctionnera pas sur Online Bash Shell.
3. Cas d’usages 2 : création et exercice #
3. Créer des rythmes #
Latence :
sleep 0.9 ;
Texte infini :
yes "texte";
Effacer les lignes précédentes :
clear
Le temps est exprimé en secondes.
3. Cas d’usages 2 : création et exercice #
4. Aligner/Couper/Renverser #
Aligner :
T[0]='texte1'
T[1]='texte2'
echo ${T[0]} ${T[1]}
ou
T[0]='texte1'
T[1]='texte2'
echo ${T[*]}
Couper :
T[0]='texte non coupé'
echo ${T[0]}| cut -c1-5,9-15
Renverser :
echo "Je perds l'équilibre" | rev
3. Cas d’usages 2 : création et exercice #
5. Texte en interaction #
Interaction simple :
echo 'Entrez votre nom :'
read p
echo "Bonjour $p !"
Interaction par choix :
echo "To be or not to be ?"
select i in être non-être; do
if [ "$i" = "être" ]; then
echo "Sois";
break
elif [ "$i" = "non-être" ]; then
echo "Tant pis"
break
else
echo "Pas de troisième choix dans ce script"
fi
done
Il est également possible de créer des conditionnelles avec le Case Statement .
Les conditionnelles sont bien entendu emboîtables/encastrables, ce qui peut complexifier le récit.
3. Cas d’usages 2 : création et exercice #
Exemple 1 #
Cet exemple est un générateur de poèmes personnalisés.
3. Cas d’usages 2 : création et exercice #
Exemple 2 #
préalable : dans votre terminal
sudo apt-get espeak
puis lancer script :
bash nom_fichier.sh
Il faut au préalable avoir installé la commande espeak sur votre terminal.
3. Cas d’usages 2 : création et exercice #
Memo
Bash a une communauté très active : il ne faut donc pas hésiter à faire des recherches sur des fonctionnalités particulières ou des problèmes rencontrés. Les forums sont une bonne source de solutions.