Passer un argument en variable
Résolu
sym59
Messages postés
40
Date d'inscription
Statut
Membre
Dernière intervention
-
sym59 Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
sym59 Messages postés 40 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit soucis avec un fichier .sh (#! /bin/bash)
Je cherche à faire passer un "argument" en variable :
J'ai dans un 1er temps listé les sous-dossiers existant dans le dossier actuel :
J'ai donc pensé à :
Quelqu'un aurait une petite idée?
Merci
J'ai un petit soucis avec un fichier .sh (#! /bin/bash)
Je cherche à faire passer un "argument" en variable :
J'ai dans un 1er temps listé les sous-dossiers existant dans le dossier actuel :
ls -d */m'en liste un certain nombre (disons n). Je cherche à faire passer le i-eme en variable (disons MonDossierNumI)
J'ai donc pensé à :
MonDossierNum5=$(ls -d */ | awk '{print$5}') pour m'afficher le 5e mais sans succès...
ls -d */ | awk '{print$1}' affiche les résultats en colonne au lieu d'afficher le 1er argument
Quelqu'un aurait une petite idée?
Merci
6 réponses
-
hello
récupérer la 5ème ligne, donc le 5ème fichierMonDossierNum5=$(ls -d */ | awk 'NR==5 {print}') -
ls affiche les résultats sur 1 colonne lorsque la sortie est redirigée par > ou |
voir l'option -C -
oui
$j n'est pas résolu entre ', on crée une variable awk:MonDossier=$(ls -d -1 */ | awk -v j=$j 'NR==j {print}') -
Salut,
C'est parfait !
Merci beaucoup dubcek! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
OK je comprends mieux pourquoi! D'ailleurs si j'ai bien compris, | awk '{print$1}' ne sert qu'à supprimer ce qu'il y a après le 1er espace ou tabulation, c'est çà?
Sinon, le code marche nickel pour un chiffre, mais pas pour une variable comme ci-dessous... Tu as une idée?
declare -i j
MonDossier=$(ls -d -1 */ | awk 'NR==$j {print}') -
Cool çà marche!
Un grand merci, j'aurais jamais pondu çà tout seul =)