[Bash] Restar caracteres a una variable

Iniciado por hervasiop12345, 11 Agosto 2011, 17:32 PM

0 Miembros y 1 Visitante están viendo este tema.

hervasiop12345

Hola. Acabo de terminar un script que recibe como parámetro una variable numérica entera y debe de hacer un monton del tamaño que le digamos. Ejemplo:
./monton 5
       *
     ***                    
    *****
   *******
  *********

El problema está en que quiero restarle a una variable que se llama distancia en cada iteración un caracter " " para que salga así de cuadrado. Ejecutar el script para entenderlo del todo y gracias.
Código (bash) [Seleccionar]

#!/bin/bash
echo $1 | grep -x -q "[0-9]\+"
num=$?
if [ \( $# != 1 \) ] || [ \( $num != 0 \) ]
then
 echo "Llama con un único argumento y que sea numérico"
 exit 1
fi

lineas=$1
control=1
char="*"
pintadas=0
j=1
espacio=" "

while [ $j -lt $lineas ]
do  
 distancia=$distancia$espacio  
 let j=j+1
done

while [ $pintadas -lt $lineas ]
do
 echo -n "$distancia"       #Esta es la variable a la que quiero restarle espacios
 for i in `seq 1 1 $control`
 do    
   echo -n "$char"
 done
 echo -e "\r"
 let control=control+2
 let pintadas=pintadas+1  
done


leogtz

Bueno, tu sabrás cómo lo haces, yo he hecho eso en C y el código no es tan complicado, mira, así puedes quitar un carácter:

Código (bash) [Seleccionar]
#!/bin/bash
name="Leonardo";
for((i = 0; i < ${#name}; i++))
do
echo -e "${name:0:-$i}";
done


${string:0:-1}
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com