Substitution Shell / bash

Résolu/Fermé
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023 - Modifié le 7 oct. 2022 à 10:47
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023 - 8 oct. 2022 à 14:38

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

BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
Modifié le 7 oct. 2022 à 11:05

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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 oct. 2022 à 17:10

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 dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
7 oct. 2022 à 17:58

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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 oct. 2022 à 11:06

montre le script

0
BenjaminA2mains Messages postés 43 Date d'inscription dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
8 oct. 2022 à 12:57

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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 oct. 2022 à 13:39

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 dimanche 1 août 2021 Statut Membre Dernière intervention 5 février 2023
8 oct. 2022 à 14:38

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