Advertisement
Guest User

Punto1

a guest
Oct 5th, 2015
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.10 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ErrorS() # Esta seccion encierra los comandos que deben ejecutarse en caso de que la misma sea invocada
  4. {
  5. # Las siguientes líneas imprimen por pantalla lo especificado entre comillas
  6. # La función que tienen es demostrar como el script debe ser llamado en caso de una invocación errónea
  7. # La variable $0 muestra por pantalla el nombre del script
  8. echo "Error. La sintaxis del script es la siguiente:"
  9. echo "Para ver la cantidad de lineas: $0 nombre_archivo L"
  10. echo "Para ver la cantidad de caracteres totales: $0 nombre_archivo C"
  11. echo "Para ver la cantidad de la linea mas larga: $0 nombre_archivo M"
  12. }
  13.  
  14. ErrorP() # Esta seccion encierra los comandos que deben ejecutarse en caso de que la misma sea invocada
  15. {
  16. # Explica el error que ocurrio mostrando el nombre del prmer parámetro ($1)
  17. echo "Error. $1 El archivo no existe o tu usuario no tiene permiso de lectura"
  18. }
  19.  
  20. if test $# -lt 2; then # Verifica que la cantidad de parámetros ingresados ($#) sea menos a dos
  21.     ErrorS # Si la cantidad de parámetros fue menor a dos se invocan a los comándos encerrados en ErrorS()
  22. fi # Termina la estructura del if
  23. if ! test -r $1; then # Verifica que el parámetro uno sea un archivo existente y que tenga accesos de lectura
  24.     ErrorP # Si el archivo no existe o el usuario no tiene permiso de lectura se invocan los comándos encerrados en ErrorP()
  25.     exit 1 # Termina el proceso
  26. elif test -f $1 && (test $2 = "L" || test $2 = "C" || test $2 = "M"); then
  27. # El comándo anterior verifica que el primer parámetro sea un archivo regular (ej: binario o de texto) y
  28. # que el segundo parámetro ingresado sea L, C o M
  29.     if test $2 = "L"; then # Verifica que el segundo parámetro sea L
  30.         res=`wc -l $1` # El resultado del comándo encerrado entre comillas inversas se deposita en la variable res
  31.         echo "La cantidad de lineas son: $res" # Muestra el texto indicado entre comillas y lo almacenado en la variable
  32.     elif test $2 = "C"; then # Verifica que el segundo parámetro sea C
  33.         res=`wc -m $1` # El resultado del comándo encerrado entre comillas inversas se deposita en la variable res
  34.         echo "La cantidad de caracteres totales contando a los caracteres de nueva linea son: $res"
  35.         # El comando anterior muestra por pantalla lo contenido entre comillas
  36.     elif test $2 = "M"; then # Verifica que el segundo parámetro sea M
  37.         res=`wc -L $1` # El resultado del comándo encerrado entre comillas inversas se deposita en la variable res
  38.         echo "La cantidad de caracteres de la linea mas larga son: $res" # Muestra el contenido entre comillas por pantalla
  39.     fi # Cierra el "if test $2.."
  40.     else
  41.         ErrorS # Si no ocurre ninguna de las posibilidades anteriores se llama a ErrorS()
  42.     fi # Cierra el "if ! test.."
  43.  
  44. # RESPUESTAS
  45.  
  46. # a) ¿Cuál es el objetivo de este script?
  47.     # El script muestra la cantidad de líneas de un archivo, la cantidad total de caracteres de un archivo o la cantidad de
  48.     # caracteres de la línea mas larga, según sea ingresado un parámetro.
  49.  
  50. # b) ¿Qué parámetros recibe?
  51.     # Recibe un archivo que contenga texto dentro del mismo y una letra la cual solo puede ser L, C o M.
  52.  
  53. # e) ¿Qué información brinda la variable “$#”? ¿Qué otras variables similares conoce? Explíquelas.
  54.     # La variable $# brinda la cantidad de parámetros ingresados junto al script. Otras variables similares son:
  55.         # - $0: brinda el nombre del script ejecutado.
  56.         # - $@: brinda la lista de los parámetros ingresados en el script
  57.         # - $*: brinda la llamada completa del script
  58.         # - $?: brinda el valor retorno del último comando
  59.         # - $$: brinda el PID del Shell que esta interpretando el script
  60.  
  61. # f) Explique las diferencias entre los distintos tipos de comillas que se pueden utilizar en Shell scripts.
  62.     # Se pueden usar tres tipos de comillas en Shell scripts:
  63.         # - " ": comilla débil, es decir que cuando reconoce una variable, un parámetro o un comando entre otras cosas
  64.         #    lo toma como tal y no como un String.
  65.         # - ' ': comilla fuerte, es decir que todo lo encerrado por estas comillas es un String.
  66.         # - ` `: comillas de ejecución, se utiliza para encerrar comandos entre ellas y asignarlos a una variable
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement