BASH : manipulation de variable

BASH : manipulation de variable - Shell/Batch - Programmation

Marsh Posté le 08-11-2012 à 12:51:31    

Hi all  :hello:  
 
Je suis en train d'analyser un shell script (SHEBANG #!/bin/bash explicite ), et il y a quelques déclarations que je ne saisis pas très bien  :heink:  
 
ex :  
 

Code :
  1. RW=$(tput lines)
  2. CL=$(tput cols)
  3. : $[RW--]
  4. k=$[RANDOM%CL]
  5. l=$[RANDOM%RW]


 
-> ligne 1 & 2 : [:yann39] (récup. des infos de dimensionnement du terminal)
 
-> ligne 4 : apparemment un décrément de la variable RW, mais est-ce différent d'un  
 

Code :
  1. let RW--


 
 :??:  
 
-> ligne 5 & 6 : assignation de valeur mais je ne comprends pas la déclaration (j'ai déjà vu de nombreuses déclarations entre accolades, pour éviter les ambiguités, entre (( )) pour l'équivalent de expr, mais ici je ne vois pas.
 
 
Merci d'avance pour toute réponse  :jap:


Message édité par ANViL le 08-11-2012 à 12:52:17

---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
Reply

Marsh Posté le 08-11-2012 à 12:51:31   

Reply

Marsh Posté le 08-11-2012 à 13:09:09    

Bonjour !
 
Pour la ligne 4, la syntaxe que vous proposez fonctionne ? Vu que les variables sont par défaut gérées comme des chaînes de caractères, je n'en mettrai pas ma main au feu (mais je ne suis pas expert de ces manipulations, et plutôt tcsh que bash :D )
 
Pour les lignes 5 et 6, on prend le modulo (nblignes et nbcolonnes) pour obtenir une position aléatoire à l'écran.
 
Bonne continuation !

Reply

Marsh Posté le 08-11-2012 à 13:56:04    

salut,
 
`$[expr]` fonctionne encore; c'est l'ancienne forme de `$(( expr ))` (où expr est une expression arithmétique).

Reply

Marsh Posté le 08-11-2012 à 14:41:41    

Farian a écrit :

Bonjour !
 
Pour la ligne 4, la syntaxe que vous proposez fonctionne ? Vu que les variables sont par défaut gérées comme des chaînes de caractères, je n'en mettrai pas ma main au feu (mais je ne suis pas expert de ces manipulations, et plutôt tcsh que bash :D )
 
Pour les lignes 5 et 6, on prend le modulo (nblignes et nbcolonnes) pour obtenir une position aléatoire à l'écran.
 
Bonne continuation !


 
 
 
 
 
Merci  :)  
 
Les délcarations présentée fonctionnent effectivement toutes, mais je les comprends à présent mieux (j'ignorais l'existence de cette ancienne version de expr !)


Message édité par ANViL le 08-11-2012 à 14:43:07

---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
Reply

Marsh Posté le 08-11-2012 à 14:47:16    

non, ce n'est pas une ancienne forme de expr, qui est une commande externe.
$[ ] est une forme ancienne de $(( )), c'est tout.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed