Substitution Shell / bash
RésoluBenjaminA2mains 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
-
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 -
hello
il faut un espace entre : et -3 (voir man bash)
echo && echo ' Vous êtes l'\''étudiant n°'${student: -3}'' -
-
montre le script
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
comment tu l'exécutes ?
ne pas faire
sh test.sh
mais
bash test.sh # ou chmod u+x test.sh; ./test.sh
