Rapport sur les scripts en bash
Table of Contents
1. Premier script
ce scripts la est un scripts un peut fun qui fait un peut comme un faux virus, il ouvre des fenetres emacs à l’infini sur notre machine. C’est un code vraiment très court baser sur un while dans lequel on applique la commande “emacs &” puis “sleep 0.5” pour laisser le temps à l’utilisateur d’arreter le script et ne pas faire planter sa machine.
#!/bin/bash a=true while [ $a != false ] ; do emacs & sleep 0.5 done
2. deuxième script
Bon, les choses sérieuse maintenant, ce script creer un affichage assez intuitif en rapport avec la commande “mv” en bash, le script propose tout d’abord de choisir ce que l’on veut faire entre deplacer un fichier, ou juste le renommer. En fonction de la réponse, on fait des actions différentes, si la réponse n’est pas valide, on redemande de saisir la réponse tant qu’elle n’est pas valide. Si la réponse vaut 1 (déplacer un fichier) on demande le chemin d’accès du répertoire dans lequel se trouve le fichier a modifier, on s’y déplace grâce à la commande “cd”, puis on demande le nom du fichier, enfin on demande le chemin d’accès du répertoire dans lequel on veut déplacer le fichier. Si le fichier existe déjà dans ce repertoire on affiche un message d’erreur, sinon on déplace le fichier dans le répertoire. Si la réponse vaut 2, on donne le chemin d’accès du répertoire ou se trouve le fichier a renommer, on s’y place grâce à “cd”, on demande le nom du fichier, puis le nouveau nom sans l’extension, enfin on demande l’extension du fichier. Si le fichier existe déjà, on renvoie un message d’erreur, sinon on renomme le fichier.
#!/bin/bash fin="non" while [[ $fin == "non" ]] ; do echo "bonjour que voulez-vous faire?" echo "deplacer un/des fichier(s): 1" echo "renommer un fichier: 2" reponse=none read -r reponse while [[ $reponse != "1" && $reponse != "2" ]] ; do echo "veuillez rentrer une valeur correcte" echo "Bonjour, que voulez-vous faire?" echo "deplacer un/des fichier(s): 1" echo "renommer un fichier: 2" read -r reponse done if [[ $reponse == "1" ]] ; then fichier=none repertoire1=none repertoire2=none echo "donnez le chemin d'accès du répertoire ou se trouve le fichier" read -r repertoire1 cd $repertoire1 echo "donnez le nom du fichier a deplacé" read -r fichier echo "donnez le chemin d'accès du répertoire dans lequel vous voulez déplacer votre fichier" read -r repertoire2 if [ -e $repertoire2/$fichier ] ; then echo "desoler le fichier existe déjà dans ce répertoire" else echo "le fichier $fichier sera déplacer dans $repertoire" mv -iv $fichier $repertoire2 fi else repertoire=none fichier=none newfichier=none extension=none echo "donnez le chemin d'accès du répertoire ou se trouve le fichier" read -r repertoire cd $repertoire echo "donnez le nom complet du fichier à renommer" read -r fichier echo "donnez le nouveau nom du fichier sans l'extension" read -r newfichier echo "donnez l'extension du fichier" read -r extension if [ -e $newfichier.$extension ] ; then echo "desoler ce fichier existe déjà" else echo "le fichier $fichier sera renommer en $newfichier.$extension" mv -iv $fichier $newfichier.$extension fi fi echo "avez-vous fini? (oui/non)" read -r fin done
3. PS1
Il est possible en bash de modifier le prompt, cette ligne qui s’affiche a chaque ligne de commande.
La variable PS1 contient les informations du prompt et il est possible de la modifier, voici ce à quoi elle est initialisé de base:
et pour le rendre plus comprehensible, j’ai taper la commande
PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;35m\]utilisateur: \[\033[01;32m\]\u\[\033[35m\]\nsur: \[\033[01;32m\]\h\[\033[35m\]\nrepertoire actuel: \[\033[01;34m\]\w\[\033[00m\]\n\[\033[01;33m\]que voulez-vous?\[\033[01;00m\]"
on obtient le résultat suivant:
qui est plus comprehensible pour ceux qui débutent en bash
4. conclusion
vous pouvez retrouver ce rapport sur ma page personnelle