Hola y gracias por leerlo:
resulta curioso, que si ingreso directamente en la bash
Código:
ls -l $dir | grep -v total | awk '{print "Permisos",$1,"nombre",$8}'
la salida es
Permisos drwxr-xr-x nombre Documentos
Permisos drwxr-xr-x nombre Escritorio
Permisos drwxr-xr-x nombre fuente
Permisos drwxr-xr-x nombre Imágenes
Permisos -rw-r--r-- nombre logbackup.txt
Permisos drwxr-xr-x nombre Música
Permisos drwxr-xr-x nombre Público
Permisos -rw-r--r-- nombre
[email protected].
Permisos -rw-r--r-- nombre
[email protected]
Permisos -rw-r--r-- nombre
[email protected]
Permisos -rw-r--r-- nombre trabajo
Permisos drwxr-xr-x nombre Vídeos
Peeeeeero!!!
Si incluyo eso mismo en un script del tipo (for por ej)
Código:
#!/bin/bash
echo "Su directorio?"
read dir
for i in `ls -l $dir | grep -v total | gawk '{print "Permisos"$1"nombre"$8}'`;do
echo "$i"
done
su salida sera
Permisos
drwxr-xr-x
nombre
Documentos
Permisos
drwxr-xr-x
nombre
Escritorio
Permisos
drwxr-xr-x
nombre
fuente
Permisos
drwxr-xr-x
nombre
Imágenes
Permisos
-rw-r--r--
nombre
logbackup.txt
Permisos
drwxr-xr-x
nombre
Música
Permisos
drwxr-xr-x
nombre
Público
Permisos
-rw-r--r--
nombre
[email protected].
Permisos
-rw-r--r--
nombre
[email protected]
Permisos
-rw-r--r--
nombre
[email protected]
Permisos
-rw-r--r--
nombre
trabajo
Permisos
drwxr-xr-x
nombre
Vídeos
Por qué esas nuevas lineas? Dónde esta el fallo, en el uso de awk o del for?
Mi conclusión es que cada valor de $i lo toma de una cadena, no de una linea, y entonces te imprime $i tantas veces como vueltas pega el for...es decir 1 vuelta: valor=permisos, la imprimo. Vuelta 2 valor=-xwr-x-x, imprimo, y asi hasta que se termina el ls y sale del for.
Estoy equivocado?
O es el awk , que me imprime una nueva linea?
Cómo puedo hacer que en el script salga como al principio?
ayuda x favor !!
y gracias!!!