Au lieu de d'initialiser nb manuellement
initialise le avec le premier nombre de ta liste saisie par l'utilisateur.
Quelle est ta manière simple de récupérer juste le premier élément malgré bash (je dis « malgré », parce que bash, c’est comme Perl en moins puissant mais plus compliqué, même s’il est bien moins indigent que le Bourne shell dont il descend) ?
Parce que je vois l’affectation de toute la liste aux variables 1,ドル 2ドル... avec
set -- $var
(intérêt supplémentaire : on peut ensuite reprendre le script prévu pour traiter les arguments), l’affectation de toute la liste à un tableau avec
$tab=($var)
(ensuite ${tab[2]} pour accéder par exemple au troisième élément, $tab donnant le premier élément), mais récupérer juste le premier élément, je ne vois pas trop...
À la réflexion, on peut récupérer juste le premier élément avec
${var%% *}
Un peu cryptique quand même pour un débutant (enfin c’est du bash...) ; explication : c’est une substitution qui rend le contenu de la variable allégé du premier espace et de tout ce qui suit.
De plus il manque une instruction dans ta structure de contrôle.
Effectivement.
Par contre, il y a aussi des instructions superflues : nb=$nb, on peut aussi sortir le shift du if then else fi dans le premier script et supprimer le else dans la foulée.
Tant qu’on y est, on peut utiliser && plutôt que if then fi et le contenu de la boucle while (du premier script) se réduit à :
do[1ドル -lt $nb]&&nb=1ドルshiftdone
« Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone
[^] # Re: modifie l'initialisation
Posté par Arthur Accroc . En réponse au message Passer de paramètres à valeurs saisie par l'utilisateur... Évalué à 6.
Quelle est ta manière simple de récupérer juste le premier élément malgré bash (je dis « malgré », parce que bash, c’est comme Perl en moins puissant mais plus compliqué, même s’il est bien moins indigent que le Bourne shell dont il descend) ?
Parce que je vois l’affectation de toute la liste aux variables 1,ドル 2ドル... avec
(intérêt supplémentaire : on peut ensuite reprendre le script prévu pour traiter les arguments), l’affectation de toute la liste à un tableau avec
(ensuite ${tab[2]} pour accéder par exemple au troisième élément, $tab donnant le premier élément), mais récupérer juste le premier élément, je ne vois pas trop...
À la réflexion, on peut récupérer juste le premier élément avec
Un peu cryptique quand même pour un débutant (enfin c’est du bash...) ; explication : c’est une substitution qui rend le contenu de la variable allégé du premier espace et de tout ce qui suit.
Effectivement.
Par contre, il y a aussi des instructions superflues : nb=$nb, on peut aussi sortir le shift du if then else fi dans le premier script et supprimer le else dans la foulée.
Tant qu’on y est, on peut utiliser && plutôt que if then fi et le contenu de la boucle while (du premier script) se réduit à :
« Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone