[gull] dernier élément d'une liste
Martial Guex
m.guex at mutech.ch
Fri Jul 2 23:53:02 CEST 2004
On Friday 02 July 2004 18.00, patrick jayet wrote:
> Bonjour à tous,
>
> Je recherche une ou plusieurs commandes bash permettant d'obtenir le
> dernier élément d'une liste de mots séparés par des espaces.
>
> ex. foo="once upon a time"
> but: obtenir "time".
>
Voici une autre solution ne faisant intervenir que des commandes interne à
bash
foo="once upon a time";
sifs=$IFS; IFS=" "; a=($foo); IFS=$sifs; r=${a[$((${#a[*]} - 1))]}; echo $r
détail:
-------
sifs=$IFS # sauve la variable IFS
IFS=" " # indique que le séparateur de mots est l'espace
a=($foo) # crée un tableau des mots de $foo
IFS=$sifs # restore la valeure initiale d'IFS
r=${a[$((${#a[*]} - 1))]} # attribue le dernier element du tableau à r
# ${#a[*]} = nb élé du tableau
# $((${#a[*]} - 1)) index du dernier tableau
echo $r # affiche le résultat
A+
Martial
More information about the gull
mailing list