Script shell

michellandry-91 Messages postés 193 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je ne vois pas l'erreur dans mon script

#! /bin/bash

cat etc_clone.sh | cut -d':' -f 1,3,4 | tr ":" " "

set nom='(cat etc_clone.sh | cut -d':' -f 1 | tr ":" " ")'

echo $nom

3 réponses

  1. hiro24 Messages postés 257 Statut Membre 11
     
    Bonjour,
    Ça te retourne quelle erreur ?
    0
    1. michellandry-91 Messages postés 193 Statut Membre 12
       
      il ya un soucis sur "set", la syntaxe est bonne?
      0
    2. hiro24 Messages postés 257 Statut Membre 11
       
      #! /bin/bash

      cat etc_clone.sh | cut -d':' -f 1,3,4 | tr ":" " "

      set nom='(cat etc_clone.sh | cut -d: -f 1 | tr ":" " ")'

      echo $nom

      enlève les '' juste après le d peut-être
      0
    3. michellandry-91 Messages postés 193 Statut Membre 12
       
      c'est toujours pareil, en fait la commande set ne donne rien
      0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    je mettrai une espace entre le d et ':' de cut.
    Je pense que utilise mal set aussi. Je connais mal cette commande mais elle sert surtout à modifier le comportement du shell.
    essai sans set juste en mettant nom=
    Dernière chose, tu utilises bien l'apostrophe inversé (alt+ctrl+7) pour affecter le nom ?
    0
  3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Quel système ?
    Quelle version de bash ?

    Essaie comme ça :

    #! /bin/bash
    
    cat etc_clone.sh | cut -d':' -f 1,3,4 | tr ":" " "
    
    nom="$(cat etc_clone.sh | cut -d':' -f 1 | tr ":" " ")"
    
    echo $nom
    0
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      Je pense que ça ne fonctionnera pas : des guillemets entre les guillemets, il faut les protéger.
      En lisant ta réponse, je me dis que ce n'est pas clair ce qu'il cherche à faire.

      michel, dit nous ce que tu cherches à faire exactement.
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      Les guillemets sont à l'extérieur de la commande, et ne sont là que pour se prémunir d'éventuels espaces dans le contenu du retour qui formera la valeur de la variable...

      $ sed -n '3p' plop
      #set -xv
      
      $ sed -n '3p' plop | cut -d'-' -f2
      xv
      
      $ sed -n '3p' plop | cut -d'-' -f2 | tr "x" "n"
      nv
      
      $ A="$(sed -n '3p' plop | cut -d'-' -f2 | tr "x" "n")"
      
      $ echo $A
      nv
      
      $

      ;-))
      0
    3. michellandry-91 Messages postés 193 Statut Membre 12
       
      je voudrais recuperer les informations dans un fichier ligne par ligne grâce à un script. Voilà le debut de mon problème.
      0
    4. michellandry-91 Messages postés 193 Statut Membre 12
       
      j'utilise Cygwin sous Windows XP
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Est-ce que la commande seule depuis un terminal marche ?
      0