IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script bash argument, paramètre !


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club Avatar de Louinux
    Homme Profil pro
    Ganil, Cyceron
    Inscrit en
    Décembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ganil, Cyceron
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 52
    Points : 32
    Points
    32
    Par défaut Script bash argument, paramètre !
    Bonjour, oui je suis le nouveau...

    Alors voila, j'ai effectuer un script powershell comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # SCRIPT PARAM
    param([string] $arg1)
     
    if([string]::IsNullOrEmpty($arg1))#si arg1 est vide alors...
    {}
    elseif($arg1 -eq "schedule")#si arg est égale à schedule nana...
    {}
    Sauf que... sur bash comment on utilise les paramètre :'((((( ???

    j'ai commencé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #VARS
    test=$1 #sachant que $1 est le premier paramètre (doc linux)
     
    if [$1=0]; then
    echo ""
    elif [$test=="schedule"] echo ""
    fi
    Ne marche pas évidement... Merci d'avance
    Il faut apprendre, non pas pour l'amour de la connaissance, mais pour se défendre contre le mépris dans lequel le monde tient les ignorants.

    Apprendre sans réfléchir est vain. Réfléchir sans apprendre est dangereux.



    Oh et allez checker pour plein d'amour pour le jeux vidéal : https://www.instant-gaming.com/igr/derisoir/
    Cordialement.

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 700
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 700
    Points : 15 043
    Points
    15 043
    Par défaut
    Citation Envoyé par Louinux Voir le message
    Bonjour, oui je suis le nouveau...
    Et tu n'as pas lu les règles, bien que les ayant acceptées...

    Citation Envoyé par Louinux Voir le message
    Sauf que... sur bash comment on utilise les paramètre :'((((( ???
    Et comment utilise-t-on le bouton CODE quand on poste du... code ? --> Règles
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Bonjour

    Tu es très bien parti !

    Le crochet est un raccourci pour la commande test.
    Donc les espaces ne sont pas facultatifs.
    Il faut écrire:
    ou
    Pareil pour la suite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    elif [ "$test" = "schedule" ];then 
    echo ""
    Des espaces, pas de double égal et ne pas oublier le then.

    Pour plus d'infos, taper :
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Nouveau membre du Club Avatar de Louinux
    Homme Profil pro
    Ganil, Cyceron
    Inscrit en
    Décembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ganil, Cyceron
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Et comment utilise-t-on le bouton CODE quand on poste du... code ? --> Règles
    Désolé il est vrai que je suis passé vite dessus... :$
    Cdlt
    Il faut apprendre, non pas pour l'amour de la connaissance, mais pour se défendre contre le mépris dans lequel le monde tient les ignorants.

    Apprendre sans réfléchir est vain. Réfléchir sans apprendre est dangereux.



    Oh et allez checker pour plein d'amour pour le jeux vidéal : https://www.instant-gaming.com/igr/derisoir/
    Cordialement.

  5. #5
    Nouveau membre du Club Avatar de Louinux
    Homme Profil pro
    Ganil, Cyceron
    Inscrit en
    Décembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ganil, Cyceron
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Merci pour les infos j'essaye ça de suite !!!
    Il faut apprendre, non pas pour l'amour de la connaissance, mais pour se défendre contre le mépris dans lequel le monde tient les ignorants.

    Apprendre sans réfléchir est vain. Réfléchir sans apprendre est dangereux.



    Oh et allez checker pour plein d'amour pour le jeux vidéal : https://www.instant-gaming.com/igr/derisoir/
    Cordialement.

  6. #6
    Nouveau membre du Club Avatar de Louinux
    Homme Profil pro
    Ganil, Cyceron
    Inscrit en
    Décembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ganil, Cyceron
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Après avoir apporter les changements que tu ma indiqué voici :
    CODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
     
    #VARS
    #test=$1
     
    if [ $test=0 ]; then
    echo "non"
    elif [ "$test"="schedule" ]; then
    echo "ok"
    fi
    Le résultat est tjrs non peut importe que je mette un argument ou pas j'éxecute avec ./test.sh ou ./test.sh schedule le résultat et non or si je met l'argument schedule il devrait me retourner ok non ?

    Car j'ai un script qui backup avec rsync et robocpy pour Windows et sur powershell avec l'exemple que j'ai donné et qui marche justement si je met schedule la deuxième partie du script s’exécute et si je ne met pas d'argument il n'y que la première partie qui s’exécute.
    Merci d'avance
    Il faut apprendre, non pas pour l'amour de la connaissance, mais pour se défendre contre le mépris dans lequel le monde tient les ignorants.

    Apprendre sans réfléchir est vain. Réfléchir sans apprendre est dangereux.



    Oh et allez checker pour plein d'amour pour le jeux vidéal : https://www.instant-gaming.com/igr/derisoir/
    Cordialement.

  7. #7
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    • Je n'ai pas écrit cela. Relis. Il y a une différence entre la comparaison arithmétique et la comparaison alphabétique.
    • Si tu veux tester un texte vide, pourquoi écris-tu 0 ? Écris un texte vide "".
    • De plus, si tu mets en commentaire l'affectation de la variable nommée "test" alors cette variable sera toujours vide.
    • C'était une bonne idée de récupérer $1 avant qu'il ne soit éventuellement écrasé.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #8
    Nouveau membre du Club Avatar de Louinux
    Homme Profil pro
    Ganil, Cyceron
    Inscrit en
    Décembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ganil, Cyceron
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    En remplacent 0 par -eq et en décommettant la variable $1 mainetant l'erreur est :

    ./test.sh: ligne 6 : [: -eq : opérateur unaire attendu

    et du coup ça m'écrit ok tout le temps peut importe qu'il y est un argument ou non

    Merci.
    Il faut apprendre, non pas pour l'amour de la connaissance, mais pour se défendre contre le mépris dans lequel le monde tient les ignorants.

    Apprendre sans réfléchir est vain. Réfléchir sans apprendre est dangereux.



    Oh et allez checker pour plein d'amour pour le jeux vidéal : https://www.instant-gaming.com/igr/derisoir/
    Cordialement.

  9. #9
    Nouveau membre du Club Avatar de Louinux
    Homme Profil pro
    Ganil, Cyceron
    Inscrit en
    Décembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ganil, Cyceron
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Et quand je lance le script avec l'argument schedule l'erreur se transforme en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ..... ligne 6 : [: schedule : nombre entier attendu comme expression
    Il faut apprendre, non pas pour l'amour de la connaissance, mais pour se défendre contre le mépris dans lequel le monde tient les ignorants.

    Apprendre sans réfléchir est vain. Réfléchir sans apprendre est dangereux.



    Oh et allez checker pour plein d'amour pour le jeux vidéal : https://www.instant-gaming.com/igr/derisoir/
    Cordialement.

  10. #10
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Mets des espaces.
    Et va lire le résultat de la commande help test.

    C'est plus utile de comprendre ce que tu tapes.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  11. #11
    Nouveau membre du Club Avatar de Louinux
    Homme Profil pro
    Ganil, Cyceron
    Inscrit en
    Décembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ganil, Cyceron
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2018
    Messages : 52
    Points : 32
    Points
    32
    Par défaut
    Après avoir cherché plusieurs choses voici le code que j'ai fait est qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #!/bin/bash
     
    #VARS
    test=$1
     
    if [ $# -eq 0 ] ; then
            echo "saisir un argument"
    elif [ "$test" == "schedule" ] ; then
            echo "ok"
    fi
    Merci de votre aide, je passe en résolu.
    Cdlt
    Il faut apprendre, non pas pour l'amour de la connaissance, mais pour se défendre contre le mépris dans lequel le monde tient les ignorants.

    Apprendre sans réfléchir est vain. Réfléchir sans apprendre est dangereux.



    Oh et allez checker pour plein d'amour pour le jeux vidéal : https://www.instant-gaming.com/igr/derisoir/
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 22
    Dernier message: 30/03/2018, 12h53
  2. Execution de script bash avec arguments
    Par moriceh dans le forum Langage
    Réponses: 5
    Dernier message: 26/07/2016, 18h13
  3. Changement de comportement du script bash si argument fourni
    Par mkrzemin dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 27/01/2013, 18h31
  4. Script bash - boucle lecture arguments
    Par jffskyx dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 16/09/2011, 09h13
  5. écrire un script bash avec des paramètres -r, -a
    Par Balbuzard dans le forum Linux
    Réponses: 4
    Dernier message: 17/12/2009, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo