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.