• [^] # Re: exercice d'entrainement

    Posté par . En réponse au message Commande if à écrire. Évalué à 3.

    Si j'en crois l'énoncé :

    mon-if 'true' 'echo reussi' affichera reussi alors que mon-if 'false' 'echo raté' n'affichera rien

    tu dois appeler la commande mon-if avec le paramètre 'true' ou mon-if avec les 2 paramètres 'false' 'echo raté'.

    Pour récupérer les paramètres passés à ton script, tu disposes :
    - des variables 1ドル à 9ドル qui contiennent respectivement ,e 1er jusqu'au 9eme paramètre passé à ton script.
    - la variable $* contenant tous les paramètres passés à ton script
    - la variable ~# qui contient le nombre d'arguments passés à ton script.

    Pour info, tu peux utiliser la commande shift qui te décalera tous tes paramètres : la valeur de 2ドル est passée ) 1,ドル la valeur de 3ドル est passée à 2,ドル etc ... et le 1ドル d'origine est perdu.

    Exemple :

    #!/bin/bash
    echo "Nombre de paramètres passé en ligne de commande : $#"
    echo "Premier paramètre passé en ligne de commande : 1ドル"
    echo "Premier paramètre passé en ligne de commande : 2ドル"
    echo " les paramètres passés par la ligne de commande : $*"
    shift
    echo "Nombre de paramètres après shift : $#"
    echo " premier paramètre après shift : $*"
    echo " les paramètres passés par la ligne de commande après shift : $*"
    

    A l'exécution :

    sans paramètres :

    $ ./essai.sh 
    Nombre de paramètres passé en ligne de commande : 0
    Premier paramètre passé en ligne de commande : 
    Premier paramètre passé en ligne de commande : 
    les paramètres passés par la ligne de commande : 
    Nombre de paramètres après shift : 0
    premier paramètre après shift : 
    les paramètres passés par la ligne de commande après shift : 
    

    avec 1 paramètre :

    $ ./essai.sh param1
    Nombre de paramètres passé en ligne de commande : 1
    Premier paramètre passé en ligne de commande : param1
    Premier paramètre passé en ligne de commande : 
    les paramètres passés par la ligne de commande : param1
    Nombre de paramètres après shift : 0
    premier paramètre après shift : 
    les paramètres passés par la ligne de commande après shift : 
    

    avec 2 paramètres :

    $ ./essai.sh param1 param2
    Nombre de paramètres passé en ligne de commande : 2 
    Premier paramètre passé en ligne de commande : param1
    Premier paramètre passé en ligne de commande : param2
    les paramètres passés par la ligne de commande : param1 param2
    Nombre de paramètres après shift : 1
    premier paramètre après shift : param2
    les paramètres passés par la ligne de commande après shift : param2
    

    avec 2 paramètres toujours :

    $ ./essai.sh param1 'param 2'
    Nombre de paramètres passé en ligne de commande : 2
    Premier paramètre passé en ligne de commande : param1
    Premier paramètre passé en ligne de commande : param 2
    les paramètres passés par la ligne de commande : param1 param 2
    Nombre de paramètres après shift : 1
    premier paramètre après shift : param 2
    les paramètres passés par la ligne de commande après shift : param 2