Script bash linux

Résolu
Bonjour,
j'ai besoin d'un script qui décompose pwd en

repertoire parent +
nom rep actuel

ex
/home/flooo/dossier1/exemple/cas1
doit donner

home/flooo/dossier1/exemple/
cas1

voila ce aue j'ai commencé
rep=$(pwd)
echo $rep
i=$(pwd | grep -o "/" | wc -l) => renvoie 5

apres je voudrais ajouter ca
mais j'y arrive pas

cas=$(pwd | cut -d/ -f$i)
echo $cas

et pour avoir le rep parent

cd ..
repp=$(pwd)
cd cas

je reviens dans le dossier

quelqu'un peu m'aider à assembler tout ca ?

4 réponses

  1. Modérateur
    Salut,
    [tmpfs]$ echo $PWD
    /home/jp/tmpfs
    
    [tmpfs]$ echo ${PWD%/*}
    /home/jp
    
    [tmpfs]$ echo ${PWD##*/}
    tmpfs
    
    [tmpfs]$  
    ;-))
    1. Contributeur
      Salut.
      Je n'ai pas compris, où est le problème ?
      tu peux peut être utiliser la variable $OLDPWD après ton cd .. et ensuite une opération sur les chaines de caratère (cf man bash)
      1. mon problème était que je n'arrivais pas à faire des opérations avec la variable i
        il me faut i+1

        i=$i+1 ne fonctionne pas
        ((i=$i+1))
        i+=1
        enfin j'ai tout essayé

        et si je veux spécifié que i est un nombre
        let i=$(pwd | grep -o "/" | wc -l) ou (( i=$(pwd | grep -o "/" | wc -l)))
        ça coince aussi

        ca c'est le premier blocage

        ensuite

        je veux que -f$i soit compris comme -f6
        mais la encore ça marche pas j'ai une erreur

        y a t'il une conversion ascii => int à effectuer
        j'ai vu qu'une fonction od existait pour faire ça mais pour les fichiers et ça transforme en hexadécimal
        enfin ça complique quand même mon problème
        Je pense que y a plus simple
        1. Contributeur
          Il n'y pas de conversion particulière char -> int en bash. La bonne commande pour l'addition c'est:
          ((i=$i+1))

          En tout cas, chez moi ça fonctionne.