Passer argument a un script a partir d'un fic

Résolu/Fermé
-
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
-
Bonjour,


Ma question est la suivante :

j'ai un script qui appelle différents arguments

./script arg1 arg2
./script arg3 arg4
./script arg5 arg6
......

ce script est récurrent et et doit etre lancé à une date donnée bien précise

Je voudrais donc éviter un nombre incalculable de ligne dans ma crontab et que mon script aille chercher ses arguments dans un fichier texte. : ((( est-ce possible ? et si oui comment ? ;))

du genre :
./script fic.txt

fic.txt
arg1 arg2
arg3 arg4
arg5 arg6
.....

merci d'avance à vous tous
Bonne journée
++
David

8 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
Salut,

J'avoue ne pas saisir la finalité de la chose ;-\

À moins que tes arguments ne changent souvent (d'où l'intérêt du fichier texte), ok pour appeler un fichier, mais dans le cas contraire, autant définir tes arguments au début de ton script, non ?

Ou alors j'ai rien pigé ? ;-((

;-)
Salut jipicy

Pour t'expliquer un peu plus clairement...........j'avoue que même moi je comprends pas ce que j'ai écrit plus haut ;))))

le script est un script expect qui permet de recuperer la conf de tous les elements actifs du réseau (une centaine)

Non les argumenst en changent pas souvent ;))) mais je preferes tenir a jour un fichier avec

type_equipememnt @IP user password

le script vient chercher ses arguments dans son tableau et en fonction du type, execute la partie du script qui va bien !!!!

ext-ce que c'est plus clair ???

merci

;))
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
Un peu plus clair dans la mesure ou il y a plus de détails ;-))

Pour "expect" et les arguments voir ce thread qui traite déjà du passage d'arguments sur la ligne de commande...

Maintenant reste à voir comment intégré ça dans ton script ;-))
Yes i jipicy, j'utilisais dejà ce passage d'arguments !!!

j'essaie en ce moment (sur le même système que j'ai décrit précédemment)

mon script expect

#!/usr/bin/expect -f

set name [lindex $argv 0]
set password [lindex $argv 1]

spawn telnet $name
expect "Enter Ctrl-Y to begin."
send "\031"
expect "Enter Password:"
send "$password\r"
expect "IP Configuration/Setup..."
send "C"
expect "#"
send "copy running-config tftp address 175.174.9.15 filename $name-config\r"
expect "#"
send "exit"

./expect @IP password => ca marche nicke

j'ai créé un fichier : list.txt avec dedans

@IP1 pass1
@ip2 pass2
@ip3 pass3
@ip4 pass4

et je fait un :

cat list.txt | while read line; do ./expect "${line}"; done

Il me prend bien en compte mes lignes de mon fichier list.txt....par contre petit souci.....

il me fait un telnet @IP1 pass1 !!!!!

il ne differencie pas argv1 et argv2 ???? chose que je fait mal ???

merci pour ton aide !!!

je sais, je suis tétu ;)))))
j'espere avoir été assez clair ;)))))

merci beaucoup
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
Enlèves les guillemets autour de la variable ${line}
cat list.txt | while read line; do ./expect ${line}; done 
;-))
merci !!!!

it's funny ;))))))))))
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
De rien ;-))