Rechercher : dans
Par :

Script bash linux

Dernière réponse le 30 sep 2008 à 09:38:59 floooo, le 29 sep 2008 à 15:58:45 
 Signaler ce message aux modérateurs

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 ?

Meilleures réponses pour « script bash linux » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...
Bash - Les paramètres VoirIntroduction Les paramètres positionnels Exemple 1 Les paramètres spéciaux Exemple 2 Initialiser des paramètres - La commande "set" - Exemples - La commande "shift" - Exemple 3 Introduction Il est possible de fournir à un script,...

1

Char Snipeur, le 29 sep 2008 à 17:17:25
  • +1

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)
Salutation !  avant je croyais, maintenant je suis fixé.Jésu­s Christ
Char Snipeur

Répondre à Char Snipeur

2

floooo, le 29 sep 2008 à 20:58:28

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

Répondre à floooo

5

Char Snipeur, le 30 sep 2008 à 09:34:03

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. Salutation !  avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

6

 jipicy, le 30 sep 2008 à 09:38:59

 i=1;((i++));echo $i
2
Marche aussi ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

3

jipicy, le 29 sep 2008 à 21:11:57
  • +3

Salut,

[tmpfs]$ echo $PWD
/home/jp/tmpfs

[tmpfs]$ echo ${PWD%/*}
/home/jp

[tmpfs]$ echo ${PWD##*/}
tmpfs

[tmpfs]$  
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

4

floooo, le 29 sep 2008 à 21:50:56

Oki
en 2 lignes...
merci beaucoup

Répondre à floooo