Séance 03 - Bash ou comment industrialiser le terminal

Version imprimable

Support de présentation (ouvrir en grand) :

Utilisez les flèches ← et → pour naviguer entre les diapositives.

Sommaire

  1. Qu’est-ce que Bash ?
  2. Cas d’usages 1 : créer et convertir des fichiers
  3. 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 #

  1. vérifier que vous disposez de pandoc
  2. créer un fichier auto.sh
  3. créer une commande pandoc pour convertir du Markdown vers du HTML
  4. dans cette commande, remplacer le nom du fichier par $1
  5. 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) #

  1. Performativité de l’écriture numérique
  2. Fonctionnement interactif d’un récit
  3. É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 #

Online Bash Shell #

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 #

  1. Générer du texte
  2. Jouer avec les commandes de base
  3. Créer des rythmes
  4. Aligner/Couper/Renverser
  5. 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 #

Pour plus d’informations sur les commandes bash #

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.