Buenas,
Les cuento que estoy haciendo un script de bash que quiero que me arme un archivo separado por comas, uno de esos archivos q despues se importan y exportan.
Les planteo una parte del problema ya que a partir de allí espero poder desenvolverme mejor.
Sé que si escribo en el Shell algo como:
# cat miarchivo | $HOME/miscript.sh
estoy redirigiendo la salida de cat a la entrada de mi script mediente el pipe '|'. Supongamos que $HOME/miscript.sh es como sigue:
#!/bin/bash
echo $#
exit 0
#FIN
y que miarchivo tiene una sola linea como la siguiente:
drwxrwxr-x 21 root root 4096 may 30 18:03 Alfabetos
Lo que no logro entender es porque si redirijo la salida del 1er comando a la entrada del 2º, el script me imprime en pantalla que no tiene parametros pasados. Aclaro que la variable $# guarda la cantidad de parametros q se le pasan al script Osea q me imprime en pantalla un 0.
Y la duda surge porque si escribo:
# $HOME/miscript.sh drwxrwxr-x 21 root root 4096 may 30 18:03 Alfabetos
$HOME/miscript.sh me devuelve 9, o sea q los datos que son parametros se reciben de una forma y no de otra, cuando tenia entendido y por todo lo que pude ver en internet que las 2 formas son equivalentes.
Si alguien sabe a que se debe esto le agradeceria ya que logicamente es mucho mejor utilizar la forma que describi primero.
Saludos.