<Anterior | Conteúdo | Próxima>
Menus
Um tipo comum de interatividade é chamado orientado por menu. Em programas baseados em menus, o usuário recebe uma lista de opções e é solicitado a escolher uma. Por exemplo, poderíamos imaginar um programa que apresentasse o seguinte:
Por favor selecione:
1. Exibir informações do sistema
2. Exibir espaço em disco
3. Exibir a utilização do espaço doméstico
0. Saia
Digite a seleção [0-3]>
Por favor selecione:
1. Exibir informações do sistema
2. Exibir espaço em disco
3. Exibir a utilização do espaço doméstico
0. Saia
Digite a seleção [0-3]>
Usando o que aprendemos escrevendo nosso sys_info_page programa, podemos construir um programa baseado em menu para realizar as tarefas no menu acima:
#! / Bin / bash
# read-menu: um programa de informações do sistema orientado por menu claro
eco "
Por favor selecione:
1. Exibir informações do sistema
2. Exibir espaço em disco
3. Exibir a utilização do espaço doméstico
0. Saia "
leia -p "Digite a seleção [0-3]>"
#! / Bin / bash
# read-menu: um programa de informações do sistema orientado por menu claro
eco "
Por favor selecione:
1. Exibir informações do sistema
2. Exibir espaço em disco
3. Exibir a utilização do espaço doméstico
0. Saia "
leia -p "Digite a seleção [0-3]>"
if [[$ REPLY = ~ ^ [0-3] $]]; então se [[$ REPLY == 0]]; então
echo "Programa encerrado." saída
fi
if [[$ REPLY == 1]]; em seguida, echo "Hostname: $ HOSTNAME" uptime
saída
fi
if [[$ REPLY == 2]]; então df -h
saída
fi
if [[$ REPLY == 3]]; então
if [[$ (id -u) -eq 0]]; então
echo "Utilização do espaço doméstico (todos os usuários)" du -sh / home / *
outro
echo "Utilização do espaço doméstico ($ USER)" du -sh $ HOME
saída fi
fi mais
echo "Entrada inválida." > & 2 saída 1
fi
if [[$ REPLY = ~ ^ [0-3] $]]; então se [[$ REPLY == 0]]; então
echo "Programa encerrado." saída
fi
if [[$ REPLY == 1]]; em seguida, echo "Hostname: $ HOSTNAME" uptime
saída
fi
if [[$ REPLY == 2]]; então df -h
saída
fi
if [[$ REPLY == 3]]; então
if [[$ (id -u) -eq 0]]; então
echo "Utilização do espaço doméstico (todos os usuários)" du -sh / home / *
outro
echo "Utilização do espaço doméstico ($ USER)" du -sh $ HOME
saída fi
fi mais
echo "Entrada inválida." > & 2 saída 1
fi
Este script é logicamente dividido em duas partes. A primeira parte exibe o menu e insere a resposta do usuário. A segunda parte identifica a resposta e executa a ação selecionada. Observe o uso do saída comando neste script. É usado aqui para evitar que o script execute código desnecessário após a realização de uma ação. A presença de vários pontos de saída em um programa geralmente é uma má ideia (torna a lógica do programa mais difícil de entender), mas funciona neste script.