CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème de script help please !

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 11:51:23

Bonjour tout le monde !

Bon voilà j'ai un petit script à faire pour les cours en shell qui demande d'afficher les arguments dans l'ordre lexicographique. Le script n'est pas compliqué en effet mais j'ai quelque soucis de syntaxe. Voici mon script :

for (( i=1; i<=$#; i++ ))
do
echo $$i ---> (c'est ici que ça foire je n'arrive pas à faire comprendre à la machine qu'il faut interpréter $$i soit $1 , $2 , $3, etc)

done

Si quelqu'un aurait la solution ça serait cool de la partager ! Je lui fais des bisous en échange :-d

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 12:41:43

Ce n'est pas vraiment ça le problème, la machine interprète $$i comme étant $$ + i ( numéro du processus + la lettre i)
Au final j'ai trouvé la solution en parcourant la liste $* avec le for :
for i in $*
do
echo $i
done

Mais du coup je dois faire la même chose avec un tant que et pareil je suis bloqué avec cette histoire de $$i

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 12:47:06

Ah je me disais aussi, mais du coup comment faire avec le tant que ?

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 12:54:58

Je crois avoir trouvé merci beaucoup !

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 12:59:39

while [ $i<=$# ]
do
echo $1
shift
i=$i+1
done

J'y suis presque non ? J'ai une erreur de syntaxe mais je vois pas où

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 13:16:33

Ah c'est si simple que ça en fait ! Merci mille fois !

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 13:21:08

Désolé mais cela ne fonctionne pas, le terminal est un PLS et ne m'affiche rien.. Pourtant ton script me semble vraiment correct

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 13:37:11

while [ $# > 0 ]
do
echo $1
shift
done

Au niveau du terminal ça semble être coincé dans une boucle infini, mais là je comprend vraiment pas pourquoi...

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 13:40:43

ça marche avec le (test "$#" -gt 0)
On peut dire que c'est pas du tout mon langage préféré !
En tout cas merci et désolé de t'avoir fait autant embêté ! :-p

Samefly1
Samefly1
Niveau 2
01 octobre 2016 à 13:45:20

Ahah ! J'avais parlé de bisous pas d'argent :D

En tout cas passe un bon week end !

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware