[Shell] problème lié aux variables positionnelles
Résolu/Fermé
A voir également:
- [Shell] problème lié aux variables positionnelles
- Classic shell windows 10 français - Télécharger - Personnalisation
- Efi shell - Forum Windows 10
- Efi shell version 2.31 - Forum Programmation
- Secure shell - Télécharger - Divers Web & Internet
- Shell substring ✓ - Forum Shell
1 réponse
mamiemando
Messages postés
33030
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 mars 2024
7 736
Modifié le 4 juin 2021 à 16:45
Modifié le 4 juin 2021 à 16:45
Bonjour,
N'oublie pas d'entourer ton code avec les balises de code (4e bouton au dessus de la boîte dans laquelle tu tapes ton message). Veille également à l'indenter correctement.
Pour résoudre ton problème, il suffit de s'inspirer de ce lien.
Note que pour passer
Enfin, note qu'en toute rigueur et comme expliqué dans ce lien, tu es supposé utilisé l'opérateur
Bonne chance
N'oublie pas d'entourer ton code avec les balises de code (4e bouton au dessus de la boîte dans laquelle tu tapes ton message). Veille également à l'indenter correctement.
Pour résoudre ton problème, il suffit de s'inspirer de ce lien.
#!/bin/bash rang=2 echo "$@" trouve() { iter=1 shift echo "rang cherché $rang" for var in "$@" do if [[ "$iter" -eq "$rang" ]] then echo "$var" break fi ((iter=iter+1)) done } trouve $rang "$@"
Note que pour passer
$@à la fonction
trouve, les guillemets sont importants. De manière générale, je t'invite à ne pas injecter le contenu d'une variable shell sans l'entourer de guillemets, car cela permet potentiellement d'injecter du code frauduleux, ou dans le cas présent, peut mener à des comportements autre que celui prévu.
Enfin, note qu'en toute rigueur et comme expliqué dans ce lien, tu es supposé utilisé l'opérateur
-eqpour faire une comparaison numérique.
Bonne chance
5 juin 2021 à 12:54