Estaciones de trabajo en línea OnWorks Linux y Windows

Logotipo

Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

Recapitulación

Con la adición de parámetros posicionales, ahora podemos escribir scripts bastante funcionales. Para tareas simples y repetitivas, los parámetros posicionales hacen posible escribir funciones de shell muy útiles que se pueden colocar en un usuario. .bashrc archivo.

Nuestra página_info_del_sistema El programa ha crecido en complejidad y sofisticación. Aquí hay una lista completa, con los cambios más recientes resaltados:



#! / Bin / bash


# sys_info_page: programa para generar una página de información del sistema


PROGNAME = $ (nombre base $ 0)

TITLE = "Informe de información del sistema para $ HOSTNAME" CURRENT_TIME = $ (fecha + "% x% r% Z")

TIMESTAMP = "Generado $ CURRENT_TIME, por $ USER"


report_uptime () {gato << - _EOF_

Tiempo de actividad del sistema

$ (tiempo de actividad)

_EOF_ volver

#! / Bin / bash


# sys_info_page: programa para generar una página de información del sistema


PROGNAME = $ (nombre base $ 0)

TITLE = "Informe de información del sistema para $ HOSTNAME" CURRENT_TIME = $ (fecha + "% x% r% Z")

TIMESTAMP = "Generado $ CURRENT_TIME, por $ USER"


report_uptime () {gato << - _EOF_

Tiempo de actividad del sistema

$ (tiempo de actividad)

_EOF_ volver


}


report_disk_space () {gato << - _EOF_

Utilización del espacio en disco

$ (df -h)

_EOF_ volver

}


report_home_space () {

si [[$ (id -u) -eq 0]]; luego gato << - _EOF_

Utilización del espacio en el hogar (todos los usuarios)

$ (du -sh / inicio / *)

_EOF_

más

gato << - _EOF_

Utilización del espacio en el hogar ($ USER)

$ (du -sh $ INICIO)

_EOF_

fi regreso

}


uso () {

echo "$ PROGNAME: uso: $ PROGNAME [-f file | -i]" return

}


write_html_page () {cat << - _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_ volver

}


# procesar opciones de línea de comando

}


report_disk_space () {gato << - _EOF_

Utilización del espacio en disco

$ (df -h)

_EOF_ volver

}


report_home_space () {

si [[$ (id -u) -eq 0]]; luego gato << - _EOF_

Utilización del espacio en el hogar (todos los usuarios)

$ (du -sh / inicio / *)

_EOF_

más

gato << - _EOF_

Utilización del espacio en el hogar ($ USER)

$ (du -sh $ INICIO)

_EOF_

fi regreso

}


uso () {

echo "$ PROGNAME: uso: $ PROGNAME [-f file | -i]" return

}


write_html_page () {cat << - _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_ volver

}


# procesar opciones de línea de comando

imagen

Recapitulación


interactivo =

nombre de archivo =


mientras que [[-n $ 1]]; hacer caso $ 1 en

-f | --expediente)

Turno

nombre de archivo = $ 1

;;

interactivo =

nombre de archivo =


mientras que [[-n $ 1]]; hacer caso $ 1 en

-f | --expediente)


-i | --interactive) interactivo = 1

;;

-h | --help) salida de uso

;;

*) uso> & 2

salir de 1

;;

cambio esac

done


# modo interactivo


si [[-n $ interactivo]]; entonces mientras sea cierto; hacer

read -p "Ingrese el nombre del archivo de salida:" nombre de archivo si [[-e $ nombre de archivo]]; luego

read -p "'$ filename' existe. ¿Sobrescribir? [y / n / q]>" case $ REPLY en

Y | y) descanso

;;

Q | q) echo "Programa terminado". Salida

;;

*) Seguir

;;

esac

elif [[-z $ nombre de archivo]]; entonces continua

más

break

fi

done

fi


# página html de salida


if [[-n $ nombre de archivo]]; luego

si toca $ nombre de archivo && [[-f $ nombre de archivo]]; luego write_html_page> $ filename

más

-i | --interactive) interactivo = 1

;;

-h | --help) salida de uso

;;

*) uso> & 2

salir de 1

;;

cambio esac

done


# modo interactivo


si [[-n $ interactivo]]; entonces mientras sea cierto; hacer

read -p "Ingrese el nombre del archivo de salida:" nombre de archivo si [[-e $ nombre de archivo]]; luego

read -p "'$ filename' existe. ¿Sobrescribir? [y / n / q]>" case $ REPLY en

Y | y) descanso

;;

Q | q) echo "Programa terminado". Salida

;;

*) Seguir

;;

esac

elif [[-z $ nombre de archivo]]; entonces continua

más

break

fi

done

fi


# página html de salida


if [[-n $ nombre de archivo]]; luego

si toca $ nombre de archivo && [[-f $ nombre de archivo]]; luego write_html_page> $ filename

más


echo "$ PROGNAME: No se puede escribir el archivo '$ filename'"> & 2 salir 1

fi más

escribir_html_pagina

fi

echo "$ PROGNAME: No se puede escribir el archivo '$ filename'"> & 2 salir 1

fi más

escribir_html_pagina

fi


Aún no hemos terminado. Todavía hay más cosas que podemos hacer y mejoras que podemos realizar.


Top OS Cloud Computing en OnWorks: