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

Je ne comprend pas [shell]

dudu45
dudu45
Niveau 6
30 octobre 2013 à 18:39:30

Bonjour,
je ne comprend mon erreur, ca m'affiche ça :

"nombre entier attendu comme expression"

La faute se trouve dans ce morceau de code mais je ne sais où :

if [ $fi -ne $pre ] && [ $fi -ne 'list.txt' ] && [ $pre -ne 'list.txt' ]

Merci d'avance :)

dudu45
dudu45
Niveau 6
30 octobre 2013 à 18:40:08

PS : Je précise que j'ai mis les espaces qu'il fallaient malgrès que ça ne s'affiche pas sur le post.

Caletlog
Caletlog
Niveau 10
30 octobre 2013 à 18:42:59

C'est à cause du nombre de []. Je t'avoue que je confond toujours, là je dirais qu'il t'en faut 2 (donc [[ comparaison ]] ) pour faire des comparaisons mais sinon essaye sans aucune.

dudu45
dudu45
Niveau 6
30 octobre 2013 à 19:07:54

Je viens d'essayer ça :

[ $fi -ne $pre ] && [ $fi -ne 'list.txt' && $pre -ne 'list.txt' ]
Meme erreur ici

et aussi ça :

[ $fi -ne $pre && $fi -ne 'list.txt' && $pre -ne 'list.txt' ]

Erreur : "[:"]" manquant"

Mdr ca me perturbe raah

Caletlog
Caletlog
Niveau 10
30 octobre 2013 à 19:17:20

Non, ce que je te disais de faire, c'est pour chaque comparaison, deux crochets (ou aucun, je sais plus).

Donc
if [[ $fi -ne $pre ]] && [[ $fi -ne 'list.txt' ]] && [[ $pre -ne 'list.txt' ]]

ou

if $fi -ne $pre && $fi -ne 'list.txt' && $pre -ne 'list.txt'

DuckSauce
DuckSauce
Niveau 14
30 octobre 2013 à 19:22:44

L'utilisation du double crochet [[ ]] permet de mieux gérer les espaces, normalement on peut utiliser le [ ] sans trop de soucis.

C'est quoi l'objectif de ton code?
Si c'est un test avec des valeurs numériques il faut utiliser (( )) à la place de tes [ ].

DN4
DN4
Niveau 7
30 octobre 2013 à 19:33:18

Problème : comparaison de chaînes de caractères dans un contexte arithmétique.

Solution : remplacer -ne par !=

Précise si tu écris en bash ou non.

dudu45
dudu45
Niveau 6
31 octobre 2013 à 10:48:40

(Desolé je me suis absenté)

Ok merci beaucoup, j'étais pas au courant qu'il y avait une différence entre le -ne et !=. Je pensais qu'en bash le != n'existait pas.

Je vais essayer tout ça, merci encore

dudu45
dudu45
Niveau 6
31 octobre 2013 à 11:02:08

J'ai essayé cela, ça semble marcher :

if [[ $fi != $pre ]] && [[ $fi != 'list.txt' ]] && [[ $pre != 'list.txt' ]]

fi et pre correspondent a des noms de fichiers repértoriés dans le fichier list.txt.

Pour les 2 dernieres conditions, je ne veux pas que fi et pre correspondent au nom list.txt

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