Page 1 sur 1

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

Publié : ven. 28 mars 2008, 10:07
par TuxSpirit
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

Publié : ven. 28 mars 2008, 11:27
par tuxce
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))}

Publié : ven. 28 mars 2008, 11:32
par wain
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%/}

Publié : ven. 28 mars 2008, 11:44
par tuxce
force de l'habitude, il y avait une expression à la place du -1 ;)

Publié : ven. 28 mars 2008, 20:42
par TuxSpirit
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 .