Console : afficher un message si on entre dans un certain do

Bonsoir,

Le titre est assez parlant je crois :
Je voulais savoir s’il était possible de réagir lorsque l’on rentre dans un dossier spécifique dans la console…

J’ai pensé a faire un alias de ‘cd’ dans bashrc, mais je me demande s’il n’y a pas une meilleure solution :think:

Merci

bonsoir,

…rien compris… :119 “reagir”:qu’est ce que tu entends par la? “do”?..non plus…

burty lis tes messages privés s’il te plaît.

‘Dossier’ désolé, le titre a été tronqué

Ben c’est simple, En console, je voudrais par exemple exécuter “echo $avertissement” quand je me retrouve dans certains dossiers

Je me demande si le plus simple ne serais pas de faire un alias avec un IF qui te permettrais d’afficher ton message.

ça ne fonctionne malheureusement pas…

J’avais oublié que lorsqu’on sortait d’un script, on retrouvait le dossier dans lequel on était…

[code]#!/bin/sh
echo $1
cd $1

CODE="/home/$USER/code"
#echo $PWD, $CODE

if [ “$PWD” = “$CODE” ];
then
echo “Attention, faire un hg pull -u pour mettre à jour le dépot avant de coder !”;
fi
[/code]

Conclusion, faut pas mettre ça dans un script. :wink: Puisqu’il faut rester dans le shell courant, une fonction ça convient :

cd_verifie() { local DOSSIER="$HOME/code" [ "$(readlink -f "$1")" = "$(readlink -f "$DOSSIER")" ] && echo "ATTENTION on est dans $DOSSIER !" cd "$@" } alias cd=cd_verifie

Salut,
Ça m’intéresse, j’ai cherché et trouvé une astuce:

Dans .bashrc:

function _cd { cd $1 if [[ -f .message ]] then cat .message fi } alias cd=_cd

Dans le dossier, un fichier .message contenant ton texte.

[quote]laurent@laurent:~$ cd ~/test
Salut, tu es dans le répertoire /home/laurent/test!
laurent@laurent:~/test$ cd
laurent@laurent:~$[/quote]

Mais ça provoque un petit bug sur “l’auto-completion” avec cd…

J’ai pas pensé à mettre le code dans bashrc directement :smiley:

La solution de syam fonctionne parfaitement.

Mais j’aime l’idée de lol, de mettre un fichier .message dans le dossier. Ce qui permet de personnaliser chaque dossier sans modifier le bashrc :stuck_out_tongue:

Avec le code de lol sans erreur d’autocompletion :

cdMessage() { cd "$@" #local DOSSIER="$HOME/code" #[ "$PWD" = "$DOSSIER" ] && echo "ATTENTION on est dans $DOSSIER !" if [ -f .message ] then cat .message fi } alias cd=cdMessage

Lol, je pense que tu as une erreur à cause des () dans ta fonction

Merci à vous 2 :slightly_smiling:

[quote=“vohu”]Lol, je pense que tu as une erreur à cause des () dans ta fonction
[/quote]

Oui. Merci.

Résolu ? => Coche verte!