Bash et expression régulière

Le
Thoma
Bonjour,

Je pratique bash, en amateur, afin de me simplifier la vie
(administration de ma machine perso).
J'ai découvert que bash intégre un notion d'expression régulière et, du
coup, je me suis dit que je pouvais améliorer certain de mes scripts.

Mais je ne comprends pas tous les détails. En effet, je teste mes
expressions régulières avec Kodos puis je les essaye sous bash et là,
patatras.

exemple:

$SVNSERVE_OPTS="--root=/var/lib/svn/repos"
$REPOSPATH="${SVNSERVE_OPTS##--root=}"

echo ${TEST}

Ça me renvoie :

/var/lib/svn/repos

Mais (voilà la question) peux t-on écrire une expression qui permette de
renvoyer "/var/lib/svn" ?


D'avance merci

Thoma
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Louis Hamel
Le #119826


Ça me renvoie :

/var/lib/svn/repos

Mais (voilà la question) peux t-on écrire une expression qui permette de
renvoyer "/var/lib/svn" ?



Utiliser dirname ? La commande:

dirname /var/lib/svn/repos

donne:
/var/lib/svn

--
JLH

Thoma
Le #119825


Ça me renvoie :

/var/lib/svn/repos

Mais (voilà la question) peux t-on écrire une expression qui permette de
renvoyer "/var/lib/svn" ?



Utiliser dirname ? La commande:

dirname /var/lib/svn/repos

donne:
/var/lib/svn



Du coup, j'écris cela

$SVNSERVE_OPTS="--root=/var/lib/svn/repos"

$REPOSPATH=`dirname ${SVNSERVE_OPTS##--root=}`

echo ${REPOSPATH}

Et ça me renvoie :

/var/lib/svn

Merci Jean-Louis

Thoma


Stephane Chazelas
Le #119824
On Sun, 18 Nov 2007 13:26:56 +0100, Thoma wrote:
[...]
Je pratique bash, en amateur, afin de me simplifier la vie
(administration de ma machine perso).
J'ai découvert que bash intégre un notion d'expression régulière et, du
coup, je me suis dit que je pouvais améliorer certain de mes scripts.

Mais je ne comprends pas tous les détails. En effet, je teste mes
expressions régulières avec Kodos puis je les essaye sous bash et là,
patatras.

exemple:

$SVNSERVE_OPTS="--root=/var/lib/svn/repos"
$REPOSPATH="${SVNSERVE_OPTS##--root=}"

echo ${TEST}

Ça me renvoie :

/var/lib/svn/repos

Mais (voilà la question) peux t-on écrire une expression qui permette de
renvoyer "/var/lib/svn" ?


SVNSERVE_OPTS="--root=/var/lib/svn/repos"
REPOSPATH=${SVNSERVE_OPTS#--root=}
REPOSPATH=${REPOSPATH%/*}

Ou

SVNSERVE_OPTS="--root=/var/lib/svn/repos"
REPOSPATH=$(dirname -- "${SVNSERVE_OPTS#*=}")

Note que dire "je pratique bash", c'est comme dire "je pratique
le Gnu C compiler". bash est un interpreteur du language de
shell Unix standard (et supporte des extensions GNU), tout comme
gcc est un compilateur pour le language C standard (et supporte
des extensions GNU).

--
Stephane

Publicité
Poster une réponse
Anonyme