30 marzo 2007

C-style en bash

Bash, como cualquier lenguaje, tiene una sintaxis propia. Eso lo sabe todo el mundo. Lo que no todo el mundo sabe es que, además, puede usar la sintaxis de C haciendo uso de los paréntesis dobles. Unos ejemplos.

Manejo de variables

Bash es muy flexible en cuanto a los tipos de variables, ya que el declararlas o no queda a elección del programador. En caso de no declararlas, una variable admite cualquier tipo. De hecho, si hacemos

a=3
a=$a+1


la variable a tomará el valor de string "3+1" (a no ser que hayamos declarado a como entero previamente). La forma correcta de hacerlo sería

let a=$a+1

en cuyo caso a sí pasaría a valer 4. Pero podemos echar mano del C-style:

((a += 1))

o bien

((a++))

Bucles y condicionales

Y esta parte es mucho más interesante, porque de esta forma podemos hacer uso de los potentes bucles de C en bash. Algunos ejemplos:

while ((a > 3 || b != 0))

if ((a > 3 && b == 5))

Admite también el uso del operador ternario de C:

((a!=b?3:11))

y, ya la reostia en salsa, el operador coma:

for ((a=1, b=1; a <= LIMITE ; a++, b++))

Gracias a kumo por (de nuevo) ponerme sobre la pista.

1 comentario:

Anónimo dijo...

Asi soy yo... un explorador de la web XDD