martes, 7 de abril de 2009

Scripts

Ayuda con scripts:

while read linea ; do
echo ${linea}
# En lugar del echo vendría el tratamiento de la línea, por ejemplo (quitando los comentarios):
# Si es una línea de campos (tendrías que ver cuál es el criterio que te dice si la línea es de
# campos, zonas o datos) la añado al final de mi línea de campos siempre que no exista
# existe=`echo ${campos} | grep "${linea}"`
# if [ ${existe} = "" ]; then
# campos="${campos} ${linea}"
# fi
# Si es una línea de zonas cojo la zona (sin repetir, es decir te quedas con la primera "palabra")
# y busco en un array de zonas y datos el elemento en el que esté la zona
# si no está en ninguno, añado un elemento al final con la zona
# i=0
# while [ $i -lt ${#zonas[@]} ]; do
# existe=`echo ${zonas[i]} | grep "^${zona}"`
# if [ "${existe}" != "" ]; then
# break
# fi
# i=$((1+$i))
# done
# if [ "${zonas[$i]}" = "" ]; then
# zonas[$i]=${zona}
# fi
# Si es una línea de datos añado los datos al final del elemento anterior
# (que será el creado o el encontrado)
# zonas[$i]="${zonas[$i]} $datos"
done <<< "`cat fichero`"
# Escribes a fichero la variable de campos
# Recorres el array de zonas y datos y lo escribes a fichero
/*******************************************************************************/


mivariable=(`mount | grep smbfs | awk '{print $3}'`)

Con la línea anterior metes el resultado de ejecutar el comando en un array que se llama mivariable, de forma que cada línea quede en un elemento del array.

Para saber cuántos elementos tiene el array lo puedes hacer con:

${#mivariable[@]}

Para acceder al primer elemento del array lo haces con:

${mivariable[0]}

Para mostrar el contenido de todo el array:

i=0
while [ $i -lt ${#mivariable[@]} ]; do
echo "Elemento $i - ${mivariable[$i]}"
i=$((1+$i))
done
/*******************************************************************************/
Hola chicos les mando un pedazo de código:

#archivo retorna_funcion
direc="/etc/rc.d/rc.samba"
if [ -x $direc ]; then
variable=1
retunr $variable --> hice de esta forma me sale bien pero leer más abajo
return [variable]--> me menciona en el libro que de esta forma pero al ejecutarlo sale error
else
...
fi

#arcivo captura_retorna_funcion
variable=$(./retorna_funcion)
echo $variable

bash3.1$ ./captura_retorna_funcion
-->muestra pantalla en blanco no retorna el valor 1 ya que dicho archivo si existe y esta en modo ejecutable, la función return retorna algún valor que pueda ser asignado a una variable.

No puedes usar return si no es dentro de una función.
Para devolver el valor debes usar:

exit $variable

y para recuperarlo:

./retorna_funcion
variable=$?

Saludos.

0000 start out (+FD),A
ld BC, +7FFF
jp 03CB, RAM-CHECK

No hay comentarios:

 
;