Forum Programmation.shell point d'exclamation dans une variable

Posté par  .
Étiquettes : aucune
-1
4
déc.
2012

Bonjour,

je ne trouve pas de solution pour assigner un "!" à la fin d'une variable.
Comment faire pour que bash n’interprète pas cette ponctuation?

aspect=$largeur"x"$hauteur'!'

je veux me servir de cette variable pour la commande suivante:
convert -resize $aspect {} -resize "$taille" -gravity center -background black -extent "$taille" -alpha off -depth 8 -type truecolor {}

Merci pour votre aide précieuse.

  • # \

    Posté par  . Évalué à 0.

    $ largeur=1;hauteur=2! && echo "${largeur}x${hauteur}"
    1x2!
    $

  • # point d'exclamation dans une variable

    Posté par  . Évalué à 0.

    Salut,

    $ largeur=10;hauteur=5
    
    $ aspect="${largeur}x${hauteur}"!
    
    $ echo ${aspect}
    10x5!
    
    

    ;-)

  • # Euh

    Posté par  . Évalué à 2.

    "ça marche chez moi", ça ne va pas t'aider je pense, mais pourtant je n'ai pas de problème en copiant les lignes indiquées dans ton texte

  • # point d'exclamation dans une variable

    Posté par  . Évalué à 1. Dernière modification le 04 décembre 2012 à 16:36.

    Je vais être un peu plus exhaustif alors!

    la commande que j’exécute est :
    find . -iname "*.tif" -type f -printf "%f\0" | xargs -I {} -0 -n 1 -P 4 convert -resize "$aspect" {} -resize "$taille" -gravity center -background black -extent "$taille" -alpha off -depth 8 -type truecolor {}

    d'après un "ps -edf" lorsqu'elle est exécutée, elle est interprétée comme cela:
    find . -iname "*.tif" -type f -printf "%f\0" | xargs -I {} -0 -n 1 -P 4 convert -resize x! {} -resize 1998x1080 -gravity center -background black -extent 1998x1080 -alpha off -depth 8 -type truecolor {}

    Ce qui est étrange, c'est que ma variable $taille est bien interprétée mais pas la variable $aspect.

    Voici comment j'initialise mes variables:

    case $3 in
    scope)format="S" && taille="2048x858";;
    flat)format="F" && taille="1998x1080";;
    esac

    ratio=mediainfo --Inform="Video;%DisplayAspectRatio%" ../"$1"
    hauteur=mediainfo --Inform="Video;%Height%" ../"$1"
    hauteur=$hauteur!
    largeur=$(echo "$hauteur*$ratio" | tr -d $'\r' | bc | cut -d"." -f1)
    aspect="${largeur}x${hauteur}"!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.