Shell impossible d'affecter une variable

Résolu
Bonjour à tous,

J'ai une question (bête) mais je bloque depuis un petit moment et je m'arrache les cheveux...
Sur un ubuntu j'ai installé imagemagick un logiciel qui permet grâce aux lignes de commandes de modifier des images. Je veux récupérer la hauteur d'origine avant la modification de l'image. Après des recherches sur internet j'ai trouvé que c'est
identify -format "%wx%h" <votre image>

Je teste la commande sur la console le résultat est ok.
Maintenant je veux l'intégré dans un script shell.

J'en ai besoin dans une variable car je la place dans une boucle for.
Je fais donc
$height= identify -size '%h' $photo
    	                   echo "$height"  // pour tester que la variable est ok

Le hic c'est que je tombe sur une erreur = : commande introuvable ou erreur identify commande inconnue

L'erreur vient forcement de ce 2 lignes car si je les retire mon script fonctionne.

Je vous remercie d'avance si vous avez une idée pour me dépanner.

Cordialement

2 réponses

  1. Modérateur
    Salut,

    Voici la syntaxe (pas des espaces avant et après le signe égal)
    variable=$(commande)
    1. Contributeur
      pour expliquer succintement, en bash, on affecte les variables sans "$" mais on les appel avec.
      la commande $() te permet de convertir la sortie standard d'une commande en chaine de caractères lisible par le script.
  2. Bonjour à vous deux,

    Tout d'abord merci pour vos réponses. Elle m'ont effectivement permis de résoudre mon problème. J'ai fait height='identify -format %h "$photo"' et hop

    Par contre à noté que les '' ne sont pas ceux de la touche 4 même s'il ressemble visuellement. Je ne sais pu comment ça s'appelle mais je sais que ça sert a exécuter ce que je lui demande dans un sous-shell et le résultat m'est renvoyer dans le shell courant. Enfin c'est ce que j'ai compris.

    Encore merci à vous deux.
    1. Contributeur
      les apostrophe, dont tu parles doivent être ceux de la touche 7.
      Ils sont équivalent à $(). Il parait que $() est recommandé par rapport à ta notation, donc :
      height=$(identify -format %h "$photo")
      C'est un peu plus clair.