URL: https://linuxfr.org/forums/programmation-shell/posts/probl%C3%A8me-dinitialisation-de-variables-dans-bash-lorsque-cron-la Title: Problème d'initialisation de variables dans Bash lorsque cron lance le script Authors: Francis Einstein Date: 2008年09月02日T20:16:40+02:00 Tags: fedora Score: -1 Salut à tous! Je viens de réaliser un script bash qui me permet de récupérer l' adresse ip de mon interface réseau eth3 et de comparer cette dernière avec une autre adresse ip mon réseau local. Mon OS: Fedora core 6. #!/bin/bash PATH='/sbin:/bin:/usr/sbin:/usr/bin'; ip_discover_comp() { OTHER_IP=1ドル TMP_IPADDR=''; TMP_IPADDR=`/sbin/ifconfig eth3 | /bin/awk '(0ドル~"inet adr"){gsub("adr:","");print 2ドル}'` if [ "${TMP_IPADDR}" = "${OTHER_IP}" ] £spaces£ £/spaces£then £spaces£ £/spaces£return 0 £spaces£ £/spaces£else £spaces£ £/spaces£return 1 fi } if ip_discover_comp 192.168.0.10 £spaces£ £/spaces£then £spaces£ £/spaces£echo "${TMP_IPADDR} meme adresse"> /root/ok.out £spaces£ £/spaces£else £spaces£ £/spaces£echo "${TMP_IPADDR} adresse diff"> /root/nok.out fi exit 0 Il s'avere que mon interface eth3 dispose de l'adresse 192.168.0.10 et lorsque je lance mon script dans un terminal j'obtiens le résultat : [root@wanche ~]# ./script.sh [root@wanche ~]# cat /root/ok.out 192.168.0.10 meme adresse ce qui est le résultat attendu. Le problème se pose lorsque je lance le meme script dans un cron: [root@wanche ~]# crontab -l */1 * * * * /root/script.sh cette fois c'est le fichier "/root/nok.out" qui est créé et a pour contenu " adresse diff"", il est donc clair que la variable qui contient l'adresse IP de mon interface est vide ou que la comparaison " ${TMP_IPADDR}" = "${OTHER_IP} " est mauvaise. Je voudrais donc savoir comment modifier ce script afin d'avoir le même résultat que lorsqu'on l'exécute dans un terminal. Merci à tous!