Forum Programmation.shell Connaitre l'emplace d'un script (bash)

Posté par  .
Étiquettes : aucune
0
1
juil.
2004
Bonjour,

Voila mon problème:
Je fais un script qui doit faire différentes choses (chmod, chown...) sur des fichiers. Ces fichiers sont dans des sous-répertoires de l'emplacement du script.
exemple:

#!\bin\bash
chmod -R o-rw *
chmod a+x repertoire1/*

tout va bien si je fais un cd emplacementDuScript et ./script.sh

Le problème c'est que si ce script n'est pas exécuté depuis où il se trouve, le 1er chmod sera exécuté sur les sous-répertoires du répertoire courant et le 2ème chmod ne trouvera pas "repertoire1".

J'ai trouvé la solution suivante:

#!/bin/bash

if [ "${0:0:1}" == "/" ] ; then
# absolu
P=$0
else
P=`pwd`/$0
fi
P=`dirname $P`/
chmod -R o-rw ${P}*
chmod a+x ${P}repertoire1/*

Ca semble fonctionnel mais j'imagine qu'il doit exister une solution plus simple !! En connaissez-vous une ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.