Estoy siguiendo esta guía de scripting de bash shell:
En la sección Comparaciones numéricas, cita un ejemplo:
anny > num=`wc -l work.txt`
anny > echo $num
201
anny > if [ "$num" -gt "150" ]
More input> then echo ; echo "you've worked hard enough for today."
More input> echo ; fi
Lo que parece suceder arriba es que almacenamos una cadena de comandos en una variable bash y luego invocamos echo en la variable. Lo que parece suceder es que se evalúa la cadena y se ejecuta el comando wc y devuelve el recuento de líneas al terminal de control.
Ok, entonces lanzo mi terminal en Ubuntu 12.04 e intento algo similar:
$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
Espere un segundo, eso no evaluó la cadena y devolvió el recuento de líneas. Eso solo hizo eco de la cadena de regreso a la terminal. ¿Por qué obtuve resultados diferentes?
wc -l work.txt
, sino que se le asigna el número 201.