[Bash Shell] Afficher le dernier caractère d'une chaîne

Autres projets et contributions
Avatar de l’utilisateur
TuxSpirit
Chu Ko Nu
Messages : 338
Inscription : jeu. 08 nov. 2007, 14:11
Localisation : Suisse/VD

[Bash Shell] Afficher le dernier caractère d'une chaîne

Message par TuxSpirit » ven. 28 mars 2008, 10:07

Il peut arriver dans certaines situations qu'on ait besoin de connaître le dernier caractère d'une chaîne, par exemple dans le cas où l'utilisateur doit saisir manuellement le chemin d'un répertoire qui contiendrait le fichier XYZ.

Voici comment déterminé le dernier caractère saisi, :

Code : Tout sélectionner

#!/bin/bash

echo "Veuillez saisir le chemin complet où se trouve le fichier XYZ :"
read REP

if [ "$REP" != "" ]; then
   #Traitement de la saisie de l'utilisateur
    vchkpath="${REP}"
    vcharcut=`echo "${vchkpath}" | sed -r 's/(.)/\1\\\\n/g'`
    vlastchar=`echo -ne ${vcharcut}| tail -n 1`

    #Traitement selon le dernier caractère
    if [ "${vlastchar}" == "/" ]; then
        #code...
    else
        #code
    fi

else
    echo -e "Aucun chemin n'a été saisi."
    exit
fi
Amicalement,
TuxSpirit

Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03
Contact :

Message par tuxce » ven. 28 mars 2008, 11:27

tu es en train d'écrire des scripts à la pelle en ce moment :)
pour afficher le dernier caractère d'une chaine, tu peux utiliser la notation ${parametre:offset:longueur}:

Code : Tout sélectionner

chaine='chaine pour essai'
echo ${chaine:$((-1))}

Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)
Contact :

Message par wain » ven. 28 mars 2008, 11:32

j'allai le dire, et même directement:

Code : Tout sélectionner

echo ${chaine:(-1)} 

edit:
d'ailleurs pour supprimer le slash à la fin du chemin (s'il existe), suffit de ceci:

Code : Tout sélectionner

echo ${chemin%/}
Dernière modification par wain le ven. 28 mars 2008, 11:51, modifié 1 fois.

Avatar de l’utilisateur
tuxce
Maître du Kyudo
Messages : 6677
Inscription : mer. 12 sept. 2007, 16:03
Contact :

Message par tuxce » ven. 28 mars 2008, 11:44

force de l'habitude, il y avait une expression à la place du -1 ;)

Avatar de l’utilisateur
TuxSpirit
Chu Ko Nu
Messages : 338
Inscription : jeu. 08 nov. 2007, 14:11
Localisation : Suisse/VD

Message par TuxSpirit » ven. 28 mars 2008, 20:42

merci tuxce et wain :D pour vos messages !!

effectivement je commence gentillement, faut que je pige toutes les subtilités et par la suite faire des utilitaires .
Amicalement,
TuxSpirit

Répondre