Substitution Shell / bash

Résolu
BenjaminA2mains Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -  
BenjaminA2mains Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -

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}''
A voir également:

5 réponses

BenjaminA2mains Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 

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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 

hello

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

echo && echo '  Vous êtes l'\''étudiant n°'${student: -3}''
0
BenjaminA2mains Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 

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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 

montre le script

0
BenjaminA2mains Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 

Tout est dans le screenshot, ni plus ni moins

0

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

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 

comment tu l'exécutes ?

ne pas faire

sh test.sh

mais

bash test.sh
# ou
chmod u+x test.sh; ./test.sh
0
BenjaminA2mains Messages postés 43 Date d'inscription   Statut Membre Dernière intervention  
 

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