Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/07/2008, à 10:59

will4linux

[RESOLU] Arguments dans script bash

Salut !

je débute en programmation bash donc ne m'en veuillez pas si ma question vous semble simple roll

je fais un script ou je dois récupérer les arguments k à l de la ligne de commande, disons k=2 et l=4

Je fais un petit

for i in `seq $k $l`
do
   echo "arg ${$i}"
done

mais le shell me renvoie l'erreur "Mauvaise substitution"... Comment fait-on ce genre de substitution ??

HELP !!!! yikes

Merci d'avance

Dernière modification par will4linux (Le 26/07/2008, à 12:30)

Hors ligne

#2 Le 24/07/2008, à 14:06

sensini

Re : [RESOLU] Arguments dans script bash

J'avoue que je ne connais pas du tout comment faire! Mais ça m'intéresse si quelqu'un connait wink

En attendant, tu peux toujours utiliser un tableau et la commande shift wink


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne

#3 Le 24/07/2008, à 14:45

philippe_g

Re : [RESOLU] Arguments dans script bash

Bonjour,

Les paramètres d'un script sont $1 à $9 ($0 est le nom du script lui-même).

Pour en savoir plus:

http://abs.traduc.org/

Hors ligne

#4 Le 24/07/2008, à 16:02

sensini

Re : [RESOLU] Arguments dans script bash

ça peut aller plus loin avec ${10} ${11} etc
mais je pense que ce que will4linux souhaitait faire c'est que dans sa boucle for, le $i soit remplacé par sa valeur (par exemple 3) et que ${$i} fasse la même chose que $3 ...:D


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne

#5 Le 24/07/2008, à 17:17

tiky

Re : [RESOLU] Arguments dans script bash

Il s'agit d'une variable dynamique. J'avais déjà eu un besoin similaire en PHP. 10s sur google et la solution est là.

#!/bin/bash
k=2
l=4
for i in `seq $k $l`; do
        echo ${!i}
done

Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#6 Le 24/07/2008, à 20:23

nofhrenn

Re : [RESOLU] Arguments dans script bash

salut si tu veux juste recuperer la liste de tes argument envoyer a ton script dans le genre:
monScript.sh arg1 arg2 tu peux fair ainsi

#!/bin/bash 

for i in $* # $* representent le liste de tout les arguments passe 
do
    echo $i 
done

voila en esperant bien avoir comprit la question tongue

Hors ligne

#7 Le 24/07/2008, à 21:03

tiky

Re : [RESOLU] Arguments dans script bash

Je pense que ça question étant comme récupérer dans une liste d'arguments, une séquence d'arguments compris entre k et k+l. Un petit détail pour le script:

#!/bin/bash
k=2
l=4
if [ $k -le $# ]
then
        [ $l -ge $# ] && l=$#
        for i in `seq $k $l`; do
                echo ${!i}
        done
fi

Il vérifie les bornes avant d'afficher les arguments. Si l est trop grand, on va jusqu'au dernier argument.

Dernière modification par tiky (Le 24/07/2008, à 22:29)


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#8 Le 25/07/2008, à 09:10

sensini

Re : [RESOLU] Arguments dans script bash

tiky a écrit :

Il s'agit d'une variable dynamique. J'avais déjà eu un besoin similaire en PHP. 10s sur google et la solution est là.

Fais le mallin!! Quand on sait quoi chercher c'est facile aussi hein!!! lol

Un grand merci à toi ! je suis sûr que ça me servira, et j'y mets dessuite dans mon pense-bête bash !


http://doc.ubuntu-fr.org/aptitude
http://bepo.fr
Pensez à chercher sur un moteur de recherche avant de demander http://google.fr/ ;)

Hors ligne

#9 Le 25/07/2008, à 10:27

tiky

Re : [RESOLU] Arguments dans script bash

La réponse était sur le forum en plus... j'ai mis variable dynamique dans google mais  c'était pas sûr que ça s'appelle comme ça sous Bash. Il n'y a pas beaucoup de langages qui proposent ça. En tout cas sous cette forme. En python c'est pas du tout comme ça qu'il faut faire.

Dernière modification par tiky (Le 25/07/2008, à 10:28)


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#10 Le 26/07/2008, à 12:26

will4linux

Re : [RESOLU] Arguments dans script bash

Merci à tous pour vos réponses !

La solution de tiky est exactement ce que je recherchais !! Merci tiky ^^

Allez je marque ce topic comme résolu ! cool

Hors ligne