Linux shell script instrução case


A instrução case


A instrução case é uma boa alternativa para a instrução

if-then-else-fi (multinível)

O case permite que você combine vários valores com uma variável.
É mais fácil ler e escrever.


Para saber usar o case é necessário conhecer e saber usar o comando test.
Conhecer e saber usar if then else e fi.
Saber declarar variáveis junto com o if then else e fi somado ao comando test.


Exemplo:

## Declarando variável
VAR5=$1

## if, comando test (outra declaração) e then
if test "$1" -gt 1; then
	echo "$1 é maior que 1"
## else
else
	echo "$1 não é 1"
## fi
fi

O mesmo que o de cima :

VAR5=$1

if [ "$1" -gt 1 ]; then
	echo "$1 é maior que 1"
else
	echo "$1 não é 1"
fi

A instrução case permite que:

você verifique facilmente o padrão (condições).
Em seguida, processe uma linha de comando.
Se essa condição for avaliada como verdadeira.


Em outras palavras, o nome da variável $ é comparado com os padrões
até que uma correspondência seja encontrada.


*) atua como padrão e é executado se nenhuma correspondência for encontrada. O padrão pode incluir curingas.


Você deve incluir dois ponto e vírgula

;;

no final de cada comandoN.


O shell executa todas as instruções até os dois pontos-e-vírgulas que
estão próximos um do outro.


O esac é sempre necessário para indicar a declaração de final de caso.


Exemplo :

#!/bin/bash

#====================
## Data: 18-08-2020
## Nome: case_comando_argumentos.sh
## Exemplo de uso:
## ./case_comando_argumentos.sh -e nome_do_arquivo.txt
#====================

# Declarando variáveis
OPT=$1   	# opção
FILE=$2  	# nome do arquivo

# -------------------

echo
echo "Listando os 10 primeiros arquivos."
echo
sleep 3

	ls -t | head
	echo
read -p "Tecle Enter para continuar."

## 		test -e e -E correspondência de
## 		args de linha de comando

case $OPT in
  -e|-E)
  	echo "Editando arquivo $2 ..." 	## certifique-se de que o nome do arquivo
  									## foi passado corretamente, caso contrário,
  									## será exibido um erro

  	[ -z $FILE ] && { echo "Falta o nome do arquivo"; exit 1; } || nano $FILE
  	;;

  -c|-C)
  	echo "Exibindo arquivo $2 ..."

  	[ -z $FILE ] && { echo "Falta o nome do arquivo"; exit 1; } || cat $FILE
  	;;

  -d|-D)
  	echo "Hoje é $(date)"
  	;;

   *)
    echo "Argumento ruim!"
    echo "Uso: $0 -ecd nome-do-arquivo"
    echo "	-e file : Edita o arquivo."
    echo "	-c file : Exibe o arquivo."
    echo "	-d      : Mostra data e hora atual."
    ;;

esac

Conclusão :

A instrução case pode ser entendida por seres humanos comuns. O exemplo final é sofisticado mas, o trabalho que realiza é muito simples.

O usuário após criar o Bash shell script, dá permissão de execução. Abre o terminal onde o script está. Digita o nome do script com uma de 3 opções -e, -c e -d. A opção -e vai abrir um arquivo no nano para o usuário poder editar. A opção -c permite que o usuário leia o arquivo. A opção -d informa a data e hora atual do do sistema. Você poderia fazer a mesma coisa de maneiras muito mais simples, até mesmo com um Bash shell script bem tosco com poucas linhas, mas, aí você não aprenderia a usar o case, variáveis, if, then, else, fi. E estes, ao contrário do script tosco que eu gosto, podem ser utilizados para realizar grandes trabalhos que valem ouro.


Até Breve!

🙂