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 18/07/2011, à 18:17

Patouff

[Résolu] retour de fonction fait passer script en tache de fond.

Bonjour,

j'ai écrit un script pour profiter d'un réseau WiFi offrant 10 min gratuites de façon à avoir plusieurs fois mes minutes en changeant mon adresse MAC. (je suis parti d'un script qui fixe une adresse mac aléatoire et je l'ai remis à ma sauce).

Le script marchait bien jusqu'à ce que j'ajoute une fonction de test de connexion: testco, je pense que c'est de là que viennent mes problèmes.
en particulier les retours qui causent l'arrèt ou la mise en tache de fond de mon script...

voici la fonction en question:

testco () {

ping -q -c 2 $AP_IP >/dev/null 2>&1
if [ $? == 0 ]
    then ping -q -c 2 $URLtest >/dev/null 2>&1
        if [ $? == 0 ]
            then exit 0 

          elif [ $? == 1 ] ; then exit 1
          else echo "erreur ping URLtest"
        fi

  elif [ $? == 1 ] ; then exit 1 
  else echo "erreur ping AP_IP"
fi
}

le "return" n'est pas accepté, je reçois

return: « return » n'est possible que depuis une fonction ou depuis un script exécuté par « source »

et avec "exit", ça part en tâche de fond....

pour finir voici le code en totalité...

#! /bin/bash

#### Configuration #############################################################################################

# Interface (eth0, eth1, wlan0...)
interface="eth1"

APessid="essid du hotspot"
AP_IP=192.168.3.1
URLtest=url accès gratuit




#### Transport de macalea script ##################################################################################
#############################################################################################################

#Script Random Adress MAC generator
#Copyright Goldy 2008 - GPL3


#### Initialisation des variables #################################################################################

compte=0
ok=not
version=0.1


#### Fonctions ################################################################################################

#Fonction de vérification de ROOT


if [ $USER = root ]
    then echo "Vous êtes root"
else
    echo "Vous n'êtes pas root, execution du script en sudo"
    sudo $0
    exit
fi

#Générateur d'adresse mac
macadress () {


    #Générateur d'aléatoire hexadécimal
    randomhexa () {

        #Fonction générateur de nombre
        random () {

        min=16
        max=255
        divisiblePar=1
        spread=$((max-min))
        random_binary=$(((RANDOM%(max-min+1))/divisiblePar*divisiblePar+min))

        }

        #Convertisseur Hexadecimal
        hexadecimal () {

        base=16

        echo ""$1" "$base" o p" | dc
        return

        }

    
    

    fonc_hexa=`random && hexadecimal $random_binary`


    }





#Ouuuuh ce que c'est moche de faire comme ça
ad1=00
randomhexa
ad2=$fonc_hexa
randomhexa
ad3=$fonc_hexa
randomhexa
ad4=$fonc_hexa
randomhexa
ad5=$fonc_hexa
randomhexa
ad6=$fonc_hexa

#ad1=00

#ad2=$(od -An -N1 -tx1 /dev/random)

#ad3=$(od -An -N1 -tx1 /dev/random)

#ad4=$(od -An -N1 -tx1 /dev/random)

#ad5=$(od -An -N1 -tx1 /dev/random)

#ad6=$(od -An -N1 -tx1 /dev/random)

random_mac_address="$ad1:$ad2:$ad3:$ad4:$ad5:$ad6"


}

#Fonction de changement d'adresse mac
mac_change () {
echo "Désactivation de l'interface réseau $interface"
if ifconfig $interface down
    then
        echo "Interface $interface désactivée"
        sleep 1
        echo "Changement de l'adresse MAC"
        #if ifconfig $interface hw ether $random_mac_address
    if ifconfig $interface hw ether $mac_address
            then
                echo "L'adresse MAC de l'interface $interface été modifié"
                echo "Nouvelle adresse : $mac_address"
                sleep 1
                echo "Activation de l'interface réseau $interface"
                if ifconfig $interface up
                    then
                        echo "L'interface $interface a été réactivé et est prète à l'emploie"
                        error=0
                else
                    echo "ERREUR : L'interface $interface n'a pas pu être réactivé"
                    error=1
                fi

        else
            echo "ERREUR : L'adresse MAC n'a pas pu être modifié"
            error=1
            sleep 2
            echo "Tentative de réactivation de l'interface $interface"
            if ifconfig $interface up
                then
                    echo "L'interface $interface a été réactivé sans changement d'adresse MAC"
            else
                echo "ERREUR : L'interface $interface n'a pas pu être réactivé"
                error=1
            fi
        fi
else
    echo "ERREUR : Impossible de désactiver l'interface $interface"
    error=1
fi

}


#### Éxecution ################################################################################################

macalea () {
#Changement MAC
ok=ok
macadress
mac_address=$random_mac_address
mac_change


# Connexion au réseau prédéfini

sudo iwconfig $interface essid "$APessid"

sudo dhclient $interface
 
google-chrome --app=www.google.fr
}

#############################################################################################################
#############################################################################################################




#### Fonctions ################################################################################################
testco () {

ping -q -c 2 $AP_IP >/dev/null 2>&1
if [ $? == 0 ]
    then ping -q -c 2 $URLtest >/dev/null 2>&1
        if [ $? == 0 ]
            then exit 0 

          elif [ $? == 1 ] ; then exit 1
          else echo "erreur ping URLtest"
        fi

  elif [ $? == 1 ] ; then exit 1 
  else echo "erreur ping AP_IP"
fi

}



#### Bouclage ################################################################################################

while true 

do

ping -q -c 5 74.125.93.147 >/dev/null 2>&1 
#ping -q -c 5 google.com >/dev/null 2>&1

if [ $? -eq 0 ] 
    then continue
    elif [ $? == 1 ] ; then testco

        if [ $? == 0 ]
            then macalea ; continue
          elif [ $? == 1 ] ; then continue
          else echo "erreur dans testco ()" ; break
        fi

  else echo "erreur dans la boucle de ping google" ; break
fi 

done

Dernière modification par Patouff (Le 20/07/2011, à 17:36)

Hors ligne

#2 Le 19/07/2011, à 09:22

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Patouff a écrit :
testco () {

ping -q -c 2 $AP_IP >/dev/null 2>&1
if [ $? == 0 ]
    then ping -q -c 2 $URLtest >/dev/null 2>&1
        if [ $? == 0 ]
            then exit 0 

          elif [ $? == 1 ] ; then exit 1
          else echo "erreur ping URLtest"
        fi

  elif [ $? == 1 ] ; then exit 1 
  else echo "erreur ping AP_IP"
fi
}

=

testco () {

ping -q -c 2 $AP_IP >/dev/null 2>&1 || { echo erreur ping $AP_IP ; return 1 ; }
ping -q -c 2 $URLtest >/dev/null 2>&1 || { echo "erreur ping $URLtest" ; return 1 ; }

}

Beaucoup de lignes pour rien, donc...



Patouff a écrit :

le "return" n'est pas accepté, je reçois

return: « return » n'est possible que depuis une fonction ou depuis un script exécuté par « source »

Bah si ça marche... Qu'attends tu de la fonction return ?



En fait ta fonction pourrait se résumer à :

testco () {
    ping -q -c 2 $URLtest >/dev/null 2>&1
}

...

testco || {
    echo "not connected"
    exit 1
}
Patouff a écrit :

et avec "exit", ça part en tâche de fond....

Non avec exit le script s'arrête.


Ici tu essayes de comparer des chaines de caractères et non des entiers :

Patouff a écrit :
if [ $? == 0 ]

Et d'autre part le signe == ne marche que dans des doubles crochets [[  ]] . Entre crochets simples il faut utiliser un seul signe égal = (et utiliser des guillemets accessoirement pour comparer des chaines de caractères).

Pour des entiers (ce qui est le cas justement) il fait écrire :

if [ $? -eq 0 ]

Egalement :

Patouff a écrit :
        if [ $? == 0 ]
            then exit 0 

Peut se résumer en :

[ $? -eq 0 ] && exit 0

Dernière modification par FRUiT (Le 19/07/2011, à 11:11)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#3 Le 19/07/2011, à 09:35

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Patouff a écrit :
if [ $USER = root ]
    then echo "Vous êtes root"
else
    echo "Vous n'êtes pas root, execution du script en sudo"
    sudo $0
    exit
fi

Peut-être que tes problèmes d'exit et de tâche de fond viennent de là. Tu devrais conseiller de redémarrer le script avec sudo, plutôt que de le faire à la place de l'utilisateur. C'est ce que font tous les programmes normaux.


Patouff a écrit :
#Ouuuuh ce que c'est moche de faire comme ça

random_mac_address="$ad1:$ad2:$ad3:$ad4:$ad5:$ad6"

Effectivement c'est ultra moche !
http://www.commandlinefu.com/commands/v … ac-address

Dernière modification par FRUiT (Le 19/07/2011, à 11:10)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#4 Le 20/07/2011, à 07:21

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Pour la réduction de testco merci, par contre je préfère faire aussi un ping vers la borne pour vérifier que je suis associé...
donc si j'ai bien compris après execution de "testco" $? me renvoie "0" si tout s'est bien passé? (c'est pour ça que je voulais mon return...)

Par contre je suis sûr de moi, après avoir lancé le script et fermé toutes mes consoles, il tournait encore (ouverture d'une page dans chrome). Je vais éditer sudoers pour l'execution root, comme ça je serais tranquille, mais jusqu'ici je me logguais en root avant de le lancer.

Par contre il a l'air de bien digérer mes "if" mal écrits, et après remplacement de ma fonction, ça marche comme sur des roulettes!
Par contre faut que je peaufine mon truc: il se reconnecte toutes les 3 min au lieu de 10...

En tout cas, merci bien, je connaissais pas du tout le truc du double pipe, c'est hyper pratique.

PS: je dois valider manuellement la page suivante, une idée pour le faire via un script?

==!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"==
==html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" ==
 
 ==form id="form_login" method="post" action="http://h2788.os.hot.osmoziswifi.com/hotspot/hotspot.php" name="form_login"==
 ==input name="submit" type="submit" value="Valider" style="width:800px; padding:50px" ></input==

==/form== 
==/html==

j'ai remplacé les "<" et ">" en bout de ligne, ça me faisait une erreur 400 depuis hier matin!!!

Hors ligne

#5 Le 20/07/2011, à 07:44

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

par ailleurs, j'ai viré la vérif de root, mais problème.
mon script ne fonctionne pas comme prévu: je fais un "Ctrl"+"C" dans la console, rien ne se passe. Je ferme donc mon onglet et ça continue... Ça a peut-être à voir avec ma boucle ?

Hors ligne

#6 Le 20/07/2011, à 07:58

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Et quand il est en fond je suis connecté même si j'ai désactivé le réseau via network-manager!
(désolé, je floode un peu...)

Hors ligne

#7 Le 20/07/2011, à 09:25

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Patouff a écrit :

Pour la réduction de testco merci, par contre je préfère faire aussi un ping vers la borne pour vérifier que je suis associé...

Quel intéret ? Si tu es connecté à $URLTest, cela signifie explicitement que AP_IP est connecté. Inversement si AP_IP n'est pas connecté tu ne pourras pas atteindre $URLTest... Ou alors j'ai mal commris quelque chose.


Patouff a écrit :

donc si j'ai bien compris après execution de "testco" $? me renvoie "0" si tout s'est bien passé? (c'est pour ça que je voulais mon return...)

Exact. Plus généralement une fonction renvoie le code d'erreur de la dernière commande qui s'y trouve exécutée.


Patouff a écrit :

Par contre je suis sûr de moi, après avoir lancé le script et fermé toutes mes consoles, il tournait encore (ouverture d'une page dans chrome). Je vais éditer sudoers pour l'execution root, comme ça je serais tranquille, mais jusqu'ici je me logguais en root avant de le lancer.

Tu peux juste forcer l'user a utiliser sudo, en faisant du genre :

[ $(id -u) -eq 0 ] || exit 2
Patouff a écrit :

Par contre il a l'air de bien digérer mes "if" mal écrits, et après remplacement de ma fonction, ça marche comme sur des roulettes!

D'une manière générale, on peut toujours écrire en 20 lignes ce qu'on avait déjà écrit en 2, en script il faut se forcer un peu à une certaine concision.

Dernière modification par FRUiT (Le 20/07/2011, à 09:28)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#8 Le 20/07/2011, à 09:35

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Pour ta boucle tu peux faire :

while ! testco; do
    sleep 5 # attente de connexion
done
macalea

Ca évitera les imbrications et les récursions. Tu auras peut-être plus le problème de tâche de fond.

[EDIT] Ou alors comme ça plutôt si ça doit être infini :

while :; do
    testco && macalea || sleep 5
done

[EDIT] Ou l'inverse

while :; do
    testco && sleep 5 || macalea
done

Dernière modification par FRUiT (Le 20/07/2011, à 10:15)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#9 Le 20/07/2011, à 09:58

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

FRUiT a écrit :
Patouff a écrit :

Pour la réduction de testco merci, par contre je préfère faire aussi un ping vers la borne pour vérifier que je suis associé...

Quel intéret ? Si tu es connecté à $URLTest, cela signifie explicitement que AP_IP est connecté. Inversement si AP_IP n'est pas connecté tu ne pourras pas atteindre $URLTest... Ou alors j'ai mal commris quelque chose.

Le réseau est mauvais donc l'association à la borne ne garantit pas l'accès à l'URL gratuite. un ping sur la borne est insuffisant, et le ping sur l'URL  gratuite peut indiquer une déconnexion qui n'est pas forcément vraie. Mais tu pouvais pas le deviner...


sinon je comprends pas le point d'exclamation et je trouve rien dans google (il veut pas le chercher!)


FRUiT a écrit :

Pour ta boucle tu peux faire :

while ! testco; do
    sleep 5 # attente de connexion
done
macalea

Ca évitera les imbrications et les récursions. Tu auras peut-être plus le problème de tâche de fond.

mais si je fais ça, il ne continuera pas à s'executer, ça boucle juste le test de connexion.
moi je veux un script qui tourne tout le temps et qui me reconnecte dès que je suis déconnecté, ça marchait au début, mais en le complexifiant j'ai fait apparaitre des bugs...

Hors ligne

#10 Le 20/07/2011, à 10:03

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

J'ai édité mon message précédent.

Le ! représente l'inverse de la condition qui le suit.

man bash

A apprendre (pas par coeur mais bon presque).


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#11 Le 20/07/2011, à 10:09

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Patouff a écrit :

Le réseau est mauvais donc l'association à la borne ne garantit pas l'accès à l'URL gratuite.

Le test sur $URLTest suffit ici.


Patouff a écrit :

un ping sur la borne est insuffisant, et le ping sur l'URL  gratuite peut indiquer une déconnexion qui n'est pas forcément vraie. Mais tu pouvais pas le deviner...

Mmm j'ai pas tout saisi mais en tout cas ton script ne gère pas cela du tout quelle que soit la version. A la rigueur il faut dans ce cas faire deux fonction la deuxième étant :

testAP () { ping -q -c1 $AP_IP >/dev/null 2>&1 ; }

Ensuite plus loin, il devra y avoir quelque chose du genre :

testAP || commande # de reconnexion

Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#12 Le 20/07/2011, à 10:25

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

man bash

trop évident pour y penser...

ouais t'as raison URLtest est suffisant. mais avec la nouvelle boucle je dois remettre un ping google dans testco (tester la connexion au réseau puis au web).
je m'en vais tester tout ça!

Hors ligne

#13 Le 20/07/2011, à 10:32

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Patouff a écrit :

je dois remettre un ping google dans testco (tester la connexion au réseau puis au web).

Je te conseille de faire une fonction, pour chaque test, ainsi tu peux personnaliser les commandes conditionnelles exécutées pour chacun des cas.

Et au pire tu peux cumuler des tests, du style :

testAP && testco && testgoogle && echo "c'est tout bon"

Dernière modification par FRUiT (Le 20/07/2011, à 10:36)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#14 Le 20/07/2011, à 10:46

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Ma foi ça m'a l'air bien (un cycle complet sans soucis!) j'ai avorté le processus par Ctrl+C on va voir s'il me joue toujours des sales tours.

il me reste 2 questions:
la première sur le ":" après while (pas encore eu le temps d'apprendre les 3000+ lignes du man bash)
l'autre sur le formulaire que je voudrais valider en auto (cf message #4)

Hors ligne

#15 Le 20/07/2011, à 11:20

FRUiT

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Pour le :

C'est une fonction spéciale, qui ressemble à true. Ca sert aussi pour attribuer des valeurs par défaut à des variables. La plupart du temps ça signifie donc "ne rien faire" , "vrai".

Exemple :

if ping -q -c1 $API_IP; then
    :
else
    commandes géantes
fi

Pour ton autre problème, apprends la commande curl.

Dernière modification par FRUiT (Le 20/07/2011, à 11:22)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#16 Le 20/07/2011, à 15:58

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Et aussi: je voudrais inverser la "valeur" de mon ping sur google, qu'il envoie 1 si il s'est connecté et 0 sinon (du moins que ce soit perçu comme tel)
il vaut mieux faire

testgo   { !(ping -q -c 5 74.125.93.147 >/dev/null 2>&1) ||{ return 1 ; } }

ou virer le "!" dans la fonction et le mettre ici:

while :; do
    testco && testgo && macalea || sleep 5
done

j'ai essayé différentes combinaisons mais ça ne passe que dans l'execution du script et je m'y perds un peu...

PS il veut pas de ma double parenthèse après testgo donc je l'ai virée...

Hors ligne

#17 Le 20/07/2011, à 17:33

Patouff

Re : [Résolu] retour de fonction fait passer script en tache de fond.

J'ai fini par trouver la solution...

Merci pour le lien sur les adresses MAC aléatoires, c'était plutôt pratique !
et merci d'une manière générale...

Je balance le code final, avis aux amateurs:

#! /bin/bash

### Revu et Modifié par MatPr

#### Configuration ###########################################################
# Interface (eth0, eth1, wlan0...)
interface="interface wifi"

APessid="nom hotspot"
URLtest=url, test de connexion à la borne




#### Transport de macalea script ##############################################
###############################################################################

#Script Random Adress MAC generator
#Copyright Goldy 2008 - GPL3


#### Initialisation des variables #############################################
compte=0
ok=not
version=0.1


#### Fonctions ################################################################

#Générateur d'adresse mac

random_mac_address=$(od -An -N12 -x  /dev/random  | md5sum | sed -r 's/^(.{12}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;')



#Fonction de changement d'adresse mac
mac_change () {
echo "Désactivation de l'interface réseau $interface"
if ifconfig $interface down
    then
        echo "Interface $interface désactivée"
        sleep 1
        echo "Changement de l'adresse MAC"
        #if ifconfig $interface hw ether $random_mac_address
    if ifconfig $interface hw ether $mac_address
            then
                echo "L'adresse MAC de l'interface $interface été modifiée"
                echo "Nouvelle adresse : $mac_address"
                sleep 1
                echo "Activation de l'interface réseau $interface"
                if ifconfig $interface up
                    then
                        echo "L'interface $interface a été réactivée et est prête à l'emploi"
                        error=0
                else
                    echo "ERREUR : L'interface $interface n'a pas pu être réactivée"
                    error=1
                fi
        else
            echo "ERREUR : L'adresse MAC n'a pas pu être modifiée"
            error=1
            sleep 2
            echo "Tentative de réactivation de l'interface $interface"
            if ifconfig $interface up
                then
                    echo "L'interface $interface a été réactivée sans changement d'adresse MAC"
            else
                echo "ERREUR : L'interface $interface n'a pas pu être réactivée"
                error=1
            fi
        fi
else
    echo "ERREUR : Impossible de désactiver l'interface $interface"
    error=1
fi

}


#### Éxecution ################################################################

macalea () {
#Changement MAC
ok=ok
mac_address=$random_mac_address
mac_change

# Connexion au réseau prédéfini
sudo iwconfig $interface essid "$APessid"
sudo dhclient $interface

#incognito pour pas surcharger l'historique
#google-chrome --incognito --app=www.google.fr
google-chrome --incognito --app=file:///home/matthieu/Bureau/scripts/test.html

now=$(date +"%T %d/%m/%y")

echo ""
echo "###  Fin   ##################################################### "
echo "#####    de               ##################################### £"
echo "###########    reconnexion  #################################   £"
echo "##########################################################     ££"
echo "######################################################       £££"
echo "###################"      $now      "############         £££££"
echo "###########################################           ££££££££"
echo "####################################             ££££££££££££"
echo "############################               ££££££££££££££££££"
echo "###################                 ££££££££££££££££££££££££££"
echo "#########                   ££££££££££££££££££££££££££££££££££££"
echo "#                  ££££££££££££££££££££££££££££££££££££££££££££££"
echo ""
sleep 8m
echo "fin de sleep"
echo ""
echo ""
}

###############################################################################
###############################################################################



#### Fonctions ############################################################################################################################################
#test de connexion à l'AP
testco () { ping -q -c 2 $URLtest >/dev/null 2>&1 || { echo "erreur ping $URLtest" ; return 1 ; } }

#test de connexion au web
testgo () { ping -q -c 5 74.125.93.147 >/dev/null 2>&1 ||{ echo "pas d'accès google" ; return 1 ; } }



#### Bouclage #################################################################

while :; do
    testco && ! (testgo) && echo "" && macalea || sleep 5

done

Dernière modification par Patouff (Le 20/07/2011, à 17:35)

Hors ligne

#18 Le 21/07/2011, à 06:00

sputnick

Re : [Résolu] retour de fonction fait passer script en tache de fond.

Un autre moyen d'avoir une MAC :

printf '%s:%s:%s:%s:%s:%s\n' $(od -An -N6 -tx1 /dev/random)

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne