Tag: Bash

Mostrando todas as entradas e posts com a tag "Bash"

Entradas do Diário

len no Bash

len no Bash

Script Bash para retornar o tamanho de uma string, muito útil para uso rápido no terminal.

#!/bin/bash
# Description: Get the length of a string
# Usage: len <string>
# Example: len "hello world"
# Output: 11

set -euo pipefail

[ "$#" -ne 1 ] && { echo "Usage: len <string>" >&2; exit 1; }
printf '%d\n' "${#1}"

Script Bash para retornar o tamanho de uma string, muito útil para uso rápido no terminal.


Configuração do Bash

Configuração do Bash

Algumas configurações úteis para adicionar no início de scripts Bash:

set -e # Exit on error
set -u # Treat unset variables as an error
set -x # Print commands and their arguments as they are executed
set -o pipefail # Fail on pipe errors

Ou tudo em uma linha:

set -euxo pipefail

Com isso, você garante:    

  • O script falha imediatamente se um comando falhar.
  • Variáveis não definidas causam erro.
  • Comandos e argumentos são impressos no terminal.
  • Erros em pipes são capturados.

Algumas configurações úteis para adicionar no início de scripts Bash:


Redirecionando a saída do terminal.

Redirecionando a saída do terminal.

Você pode redirecionar toda a saída de um script para um arquivo usando um único comando no início do script.

Nesse exemplo, a saída do comando ls será direcionada para o arquivo out.txt.

#!/bin/bash
exec >out.txt 2>&1
ls -al --color

Você também pode redirecionar a saída para o console, usando /dev/console, requer permissão de root.

#!/bin/bash
exec >/dev/console 2>&1
ls -al --color

O parâmetro --color é usado para manter a saída colorida, porque o comando ls detecta se a saída é um terminal ou não, e ajusta a saída de acordo.


Baytimetro

Baytimetro

Esse fim de semana fiz algumas brincadeiras com o terminal, desenhando direto e recriei um recurso lá dos anos 80 que, apesar de extremamente simples, é muito útil: o baytimetro.

echo "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
echo "         1         2         3         4         5         6         7         8"

Ótimo chamar com seu desenho de tela e descobrir se você precisa colocar algum caractere mais para a direita ou esquerda.

É ridiculamente simples, mas fazer esse tipo de coisa tem um apelo nostálgico muito grande para mim.

Esse fim de semana fiz algumas brincadeiras com o terminal, desenhando direto e recriei um recurso lá dos anos 80 que, apesar de extremamente simp...


Função `toclip`

Função toclip

Esta é uma função Bash que uso como parte de meus scripts e ambientes de desenvolvimento. Ela copia o conteúdo do stdin para a área de transferência. Muito útil quando você está acessando um servidor via SSH.

toclip() {
    [[ ${SSH_CONNECTION-}${SSH_TTY-} ]] && {
        printf $'\033]52;c;%s\a' "$(base64 -w0 2>/dev/null || base64 | tr -d '\n')"
        return
    }

    case $OSTYPE in
        darwin*) pbcopy ;;
        linux*)
            #command -v wl-copy >/dev/null 2>&1 && wl-copy && return
            command -v xclip   >/dev/null 2>&1 && xclip -selection clipboard && return
            # Fallback Linux without xclip or wl-copy returns to OSC52
            printf $'\033]52;c;%s\a' "$(base64 -w0 2>/dev/null || base64 | tr -d '\n')"
            ;;
    esac
}

Exemplo de uso

Direto do stdin:

echo "Texto para copiar" | toclip

Copiando o conteúdo de um arquivo:

toclip < arquivo.txt

Esta é uma função Bash que uso como parte de meus scripts e ambientes de desenvolvimento. Ela copia o conteúdo do stdin para a área de transfe...