Découper chaine de caractère

Résolu
simo -  
 simo -
Bonjour,
J'ai une chaine de caractère sous forme :
nom1,nom2,nom3
que je voudrai rendre sous forme de 3 paramères çàd :
param1=nom1
param2=nom2
param3=nom3

Merci d'avance.
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Merci ;-((
    0
    1. simo
       
      salut jipycy :)
      j'ai un nouveau pbm à te poser:
      j'ai un scipt interactif et qui donne la possibilité à l'utilisateur de faire son choix parmi d'autres, je voudrai que ce script récupère le choix soit en mode intéractif soit en mode ligne de commande.
      c'est possible?
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > simo
         
        J'aurai bien aimé que tu nous mettes la solution à ton 1er problème si c'était possible pour que ça serve à d'autres éventuellement...

        Quant à ton autre problème c'est un peu confus ;-\

        script interactif = ligne de commande, enfin pour moi.

        Donc expliques-toi mieux et avec des exemples si possible...
        0
      2. simo > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        la réponse au premier problème :
        chaine=nom1,nom2,nom3
        chaineTab=`echo $chaine`
        old="$IFS"
        IFS=","
        set $chaineTab
        IFS="$old"
        echo $1,$2,$3

        Pour mon deuxième problème :
        le script est comme suit :

        >cat test.sh

        while true
        do
        clear
        echo "\n\n\n\n"
        echo "
        xxxxxxxxxxxxxxxxxxxxxxxxxxx
        ------------------------------


        1. choix1

        2. choix2

        0. Quitter


        Votre choix : \c choix"
        read choix

        case "$choix" in
        "1" )
        echo "vous avez taper choix 1";;
        "2" )
        echo "vous avez taper choix 2";;
        esac
        done

        si j'éxecute ce script, l'éxecution est intéractive.
        sinon je veux l'éxecuter comme suit :

        >test.sh 1
        résultat --> vous avez taper choix 1

        C bon :)
        merci d'avance
        0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Déjà merci pour la solution ;-)

    Concernant ton autre problème, je dirai oui c'est possible et non ce n'est pas possible du moins de la manière dont tu voudrais que ça le fasse, et notamment avec une boucle "while true".

    Par contre il fort possible de passer des données à un script interactif en se passant du terminal.
    En voilà un exemple avec un script tout simple...

    Le script : simo.sh
    #! /bin/bash
    
    read -p "Entrez une couleur : " couleur
    read -p "Entrez un chiffre : " chiffre
    read -p "Entrez un nom d'oiseau : " nom
    echo -e "\nLa couleur choisie est : ${couleur}\n
    Le chiffre choisi est : ${chiffre}\n
    Le nom d'oiseau choisi est : ${nom}\n"

    1 - script interactif depuis le terminal :
    $ ./simo.sh
    Entrez une couleur : bleu
    Entrez un chiffre : 18
    Entrez un nom d'oiseau : ara
    
    La couleur choisie est : bleu
    
    Le chiffre choisi est : 18
    
    Le nom d'oiseau choisi est : ara

    2 - script interactif avec fichier de réponse :
    $ cat fich
    vert
    2008
    colombe
    
    $ ./simo.sh < fich
    
    La couleur choisie est : vert
    
    Le chiffre choisi est : 2008
    
    Le nom d'oiseau choisi est : colombe

    3 - script interactif avec une variable :
    $ var="rouge
    555
    pigeon"
    
    $ echo "$var"
    rouge
    555
    pigeon
    
    $ ./simo.sh <<<"$var"
    
    La couleur choisie est : rouge
    
    Le chiffre choisi est : 555
    
    Le nom d'oiseau choisi est : pigeon
    En espérant avoir répondu en partie à tes attentes ;-))
    0
    1. simo
       
      Bonjour jipycy,
      merci pour ta réponse, elle me met ds le bon chemin :)
      par ailleurs, comment peut on savoir le nombre de paramètres passé pour un script. Ex :
      monScript.sh param1 param2 param3
      -->3paramètres

      Merci
      0
      1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > simo
         
        echo $#
        ;-))
        0
      2. simo > simo
         
        c bon. résolu
        print $#

        Bonne journée
        0