Código da aula 5 #5

Open
opened 2025-08-27 21:20:01 -03:00 by Carlitos · 1 comment
#!/bin/bash

# Config----------------------------------------------------------------------

# Números mágicos
ERR_ARGS=1

# Mensagens de erro
err[ERR_ARGS]='Número incorreto de argumentos.'

# Versão e ajuda
version=0.1
help="Esta é uma ajuda."
copy="Versão $version"

# Functions-------------------------------------------------------------------

die () {
    echo "${err[$1]}"
    echo "$help"
    exit 1
}

# Parse Options---------------------------------------------------------------

# Checar número de argumentos...
    # Se for igual a zero (argc == 0)
        # Exibir ajuda
        # Finalizar com erro
[[ $# -eq 0 ]] && die $ERR_ARGS

# Selecionar ação conforme opções esperadas
case $1 in
    -l|--list)
        # Listar modelos e editores
        :
        ;;
    -h|--help)
        # Exibir ajuda e sair
        echo "$help"
        exit 0
        ;;
    -v|--version)
        # Exibir versão e sair
        echo "$copy"
        exit 0
esac

# Main------------------------------------------------------------------------


# O arquivo já existe no diretório?
    # Erro
    # Terminar
# Extensão é válida?
    # Se não, erro e terminar
# Selecionar modelo conforme extensão

# Copiar modelo para novo arquivo
# Executar editor para abrir novo arquivo

```bash #!/bin/bash # Config---------------------------------------------------------------------- # Números mágicos ERR_ARGS=1 # Mensagens de erro err[ERR_ARGS]='Número incorreto de argumentos.' # Versão e ajuda version=0.1 help="Esta é uma ajuda." copy="Versão $version" # Functions------------------------------------------------------------------- die () { echo "${err[$1]}" echo "$help" exit 1 } # Parse Options--------------------------------------------------------------- # Checar número de argumentos... # Se for igual a zero (argc == 0) # Exibir ajuda # Finalizar com erro [[ $# -eq 0 ]] && die $ERR_ARGS # Selecionar ação conforme opções esperadas case $1 in -l|--list) # Listar modelos e editores : ;; -h|--help) # Exibir ajuda e sair echo "$help" exit 0 ;; -v|--version) # Exibir versão e sair echo "$copy" exit 0 esac # Main------------------------------------------------------------------------ # O arquivo já existe no diretório? # Erro # Terminar # Extensão é válida? # Se não, erro e terminar # Selecionar modelo conforme extensão # Copiar modelo para novo arquivo # Executar editor para abrir novo arquivo ```
Author

Código atualizado 29/8

#!/bin/bash

# Config----------------------------------------------------------------------

tpl_dir=./modelos

# Números mágicos
ERR_ARGS=1
ERR_F_EXISTS=2
ERR_EXT=3

# Mensagens de erro
err[ERR_ARGS]='Número incorreto de argumentos.'
err[ERR_F_EXISTS]='Arquivo já existe.'
err[ERR_EXT]='Modelo inválido.'

# Versão e ajuda
version=0.1
help="Esta é uma ajuda."
copy="Versão $version"
list="Lista de modelos"

# Functions-------------------------------------------------------------------


die () {
    echo "${err[$1]}"
    echo "$help"
    exit $1
}

# Parse Options---------------------------------------------------------------

# Checar número de argumentos...
    # Se for igual a zero (argc == 0)
        # Exibir ajuda
        # Finalizar com erro
[[ $# -eq 0 ]] && die $ERR_ARGS

# Selecionar ação conforme opções esperadas
case $1 in
    -l|--list)
        # Listar modelos e editores
        echo "$list"
        exit 0
        ;;
    -h|--help)
        # Exibir ajuda e sair
        echo "$help"
        exit 0
        ;;
    -v|--version)
        # Exibir versão e sair
        echo "$copy"
        exit 0
esac

# O arquivo já existe no diretório?
    # Erro
    # Terminar
[[ -f $1 ]] && die $ERR_F_EXISTS
filename=$1
# Extensão é válida?
ext=bash
if [[ $filename =~ ^[^.]+\.[^.]+$ ]]; then
    ext=${filename/*.}
    # Selecionar modelo conforme extensão
    [[ -f $tpl_dir/$ext ]] || die $ERR_EXT
fi

echo $ext

# Main------------------------------------------------------------------------


# Copiar modelo para novo arquivo
cp $tpl_dir/$ext $filename
# Executar editor para abrir novo arquivo
exec nano $filename

### Código atualizado 29/8 ```bash #!/bin/bash # Config---------------------------------------------------------------------- tpl_dir=./modelos # Números mágicos ERR_ARGS=1 ERR_F_EXISTS=2 ERR_EXT=3 # Mensagens de erro err[ERR_ARGS]='Número incorreto de argumentos.' err[ERR_F_EXISTS]='Arquivo já existe.' err[ERR_EXT]='Modelo inválido.' # Versão e ajuda version=0.1 help="Esta é uma ajuda." copy="Versão $version" list="Lista de modelos" # Functions------------------------------------------------------------------- die () { echo "${err[$1]}" echo "$help" exit $1 } # Parse Options--------------------------------------------------------------- # Checar número de argumentos... # Se for igual a zero (argc == 0) # Exibir ajuda # Finalizar com erro [[ $# -eq 0 ]] && die $ERR_ARGS # Selecionar ação conforme opções esperadas case $1 in -l|--list) # Listar modelos e editores echo "$list" exit 0 ;; -h|--help) # Exibir ajuda e sair echo "$help" exit 0 ;; -v|--version) # Exibir versão e sair echo "$copy" exit 0 esac # O arquivo já existe no diretório? # Erro # Terminar [[ -f $1 ]] && die $ERR_F_EXISTS filename=$1 # Extensão é válida? ext=bash if [[ $filename =~ ^[^.]+\.[^.]+$ ]]; then ext=${filename/*.} # Selecionar modelo conforme extensão [[ -f $tpl_dir/$ext ]] || die $ERR_EXT fi echo $ext # Main------------------------------------------------------------------------ # Copiar modelo para novo arquivo cp $tpl_dir/$ext $filename # Executar editor para abrir novo arquivo exec nano $filename ```
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: blau_araujo/bash#5
No description provided.