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 ?
# pas sûr d'avoir compris, mais...
Posté par tgl . Évalué à 4.
[^] # Re: pas sûr d'avoir compris, mais...
Posté par djapat . Évalué à 1.
On rajoutera en plus un "cd -" à la fin...
Merci !
[^] # Re: pas sûr d'avoir compris, mais...
Posté par tgl . Évalué à 4.
Pas la peine : le code est exécuté dans un nouveau shell. Ton shell courant lui ne changera pas de répertoire.
[^] # Re: pas sûr d'avoir compris, mais...
Posté par djapat . Évalué à 1.
Je "t'intéressantise" un fois de plus !
[^] # Re: pas sûr d'avoir compris, mais...
Posté par Vivi (site web personnel) . Évalué à 1.
cd "${0%/*}"
mais tout ça ne marche pas si $0 est un lien vers le script ...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.