Substitution Shell / bash

Résolu
BenjaminA2mains Messages postés 44 Statut Membre -  
BenjaminA2mains Messages postés 44 Statut Membre -

Bonjour,
I have a problème comme et pour toujours.

J'ai un script qui récupère le nom d'un profil entré par l'utilisateur par le terminal Linux et qui ensuite récupère les 2 derniers caractères, mais bien évidemment ça ne veut pas…

Si quelqu'un à une idée (j'ai essayé par "trail", mais il me marque toujours "Bad Substitution").

Alors que dans le cas écrit ci-dessous, il m'écrit juste la variable dans son intégralité.

Si quelqu'un à une solution (oui, j'ai déjà été voir sur internet et je ne comprends pas davantage mon erreur).

#!/bin/bash
clear
echo && echo '  Pour quel étudiant ?'
echo '  (student07 par exemple)' && echo
read student

clear
echo && echo '  Vous êtes l'\''étudiant n°'${student:-3}''

5 réponses

  1. BenjaminA2mains Messages postés 44 Statut Membre
     

    Ok, j'ai trouvé une solution, vu que chaque profil commence tous par "student", je peux faire :

    #!/bin/bash
    clear
    echo && echo '  Pour quel étudiant ?'
    echo '  (student07 par exemple)' && echo
    read student
    clear
    echo && echo '  Vous êtes l'\''étudiant n°'${student##*student}''

    Mais n'est malheureusement pas utilisable dans un cas générique :
    Si quelqu'un à une solution justement dans un cas générique, je laisse le topic en "non résolu" pour l'instant

    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     

    hello

    il faut un espace entre : et -3   (voir man bash)

    echo && echo '  Vous êtes l'\''étudiant n°'${student: -3}''
    0
  3. BenjaminA2mains Messages postés 44 Statut Membre
     

    Merci pour ta réponse,
    Mais ça ne fonctionne toujours pas et je ne comprends pas pourquoi…

    Dans mes souvenirs, il fallait faire comme tu le dis et c'est aussi ce que j'ai vu sur internet. (que j'ai oublié de préciser).

    Donc voilà ce que j'obtiens avec le script qui pour moi, aussi, est bon.

    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     

    montre le script

    0
    1. BenjaminA2mains Messages postés 44 Statut Membre
       

      Tout est dans le screenshot, ni plus ni moins

      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     

    comment tu l'exécutes ?

    ne pas faire

    sh test.sh

    mais

    bash test.sh
    # ou
    chmod u+x test.sh; ./test.sh
    0
    1. BenjaminA2mains Messages postés 44 Statut Membre
       

      J'ai relancer la VM

      Et ça fonctionne maintenant

      En tout cas merci, au moins le topic montre bien tout ce qu'on doit faire attention mdrr

      0