<Anterior | Contenido | Siguiente>
Menús
Un tipo común de interactividad se llama guiado por menú. En los programas controlados por menús, al usuario se le presenta una lista de opciones y se le pide que elija una. Por ejemplo, podríamos imaginar un programa que presentara lo siguiente:
Por favor seleccione:
1. Mostrar información del sistema
2. Mostrar espacio en disco
3. Muestra la utilización del espacio en el hogar
0. Salir
Ingrese la selección [0-3]>
Por favor seleccione:
1. Mostrar información del sistema
2. Mostrar espacio en disco
3. Muestra la utilización del espacio en el hogar
0. Salir
Ingrese la selección [0-3]>
Usando lo que aprendimos al escribir nuestro página_info_del_sistema programa, podemos construir un programa basado en menús para realizar las tareas en el menú anterior:
#! / Bin / bash
# read-menu: un programa de información del sistema controlado por menús clear
eco "
Por favor seleccione:
1. Mostrar información del sistema
2. Mostrar espacio en disco
3. Muestra la utilización del espacio en el hogar
0. Salir "
read -p "Ingresar selección [0-3]>"
#! / Bin / bash
# read-menu: un programa de información del sistema controlado por menús clear
eco "
Por favor seleccione:
1. Mostrar información del sistema
2. Mostrar espacio en disco
3. Muestra la utilización del espacio en el hogar
0. Salir "
read -p "Ingresar selección [0-3]>"
si [[$ RESPUESTA = ~ ^ [0-3] $]]; entonces si [[$ REPLY == 0]]; luego
echo "Programa terminado". Salida
fi
si [[$ RESPUESTA == 1]]; luego repita el tiempo de actividad de "Hostname: $ HOSTNAME"
salida
fi
si [[$ RESPUESTA == 2]]; luego df -h
salida
fi
si [[$ RESPUESTA == 3]]; luego
si [[$ (id -u) -eq 0]]; luego
echo "Utilización del espacio doméstico (todos los usuarios)" du -sh / home / *
más
echo "Utilización del espacio doméstico ($ USER)" du -sh $ HOME
salida fi
fi más
echo "Entrada no válida". > & 2 salida 1
fi
si [[$ RESPUESTA = ~ ^ [0-3] $]]; entonces si [[$ REPLY == 0]]; luego
echo "Programa terminado". Salida
fi
si [[$ RESPUESTA == 1]]; luego repita el tiempo de actividad de "Hostname: $ HOSTNAME"
salida
fi
si [[$ RESPUESTA == 2]]; luego df -h
salida
fi
si [[$ RESPUESTA == 3]]; luego
si [[$ (id -u) -eq 0]]; luego
echo "Utilización del espacio doméstico (todos los usuarios)" du -sh / home / *
más
echo "Utilización del espacio doméstico ($ USER)" du -sh $ HOME
salida fi
fi más
echo "Entrada no válida". > & 2 salida 1
fi
Este script está lógicamente dividido en dos partes. La primera parte muestra el menú e ingresa la respuesta del usuario. La segunda parte identifica la respuesta y realiza la acción seleccionada. Observe el uso de la salida comando en este script. Se utiliza aquí para evitar que el script ejecute código innecesario después de que se haya llevado a cabo una acción. La presencia de múltiples puntos de salida en un programa es generalmente una mala idea (hace que la lógica del programa sea más difícil de entender), pero funciona en este script.