Réponses:
case $x in *[!/]*/) x=${x%"${x##*[!/]}"};; esac
target=${DIR%/}
Utilisation target=${1%/}
Voir ceci la substitution de paramètre de ce guide de script bash pour plus.
Je pense qu'une meilleure solution pour canoniser les chemins est realpath $path
ou avec -m
option si elle n'existe pas. Cette solution supprime automatiquement les barres obliques inutiles et ajoute pwd
readlink -f
c'est un peu plus portable que realpath
. Pour des options supplémentaires / alternatives: linux.die.net/man/1/readlink
target=$(realpath -L --relative-base . $1)
Attention, bash3 a ajouté une expression régulière similaire à Perl à bash. Le guide mentionné couvre cela ainsi que le guide officiel de GNU , mais toutes les références ne le font pas.
Remplaçant 2.19/*
pour être2.19
.
VER="2.19/foo-bar"
NEWVER=${VER%/*}