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}"
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.
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.
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
Outros Posts
Fork bomb: Do Código à Defesa
O que é uma fork bomb, como ela funciona com exemplos em bash, C e assembly, e conheça as melhores práticas para prevenir esse tipo de ataque DoS em sistemas modernos.
Reescrevendo o velho TSR usando Bash
Exemplo de TSR (Terminate and Stay Resident) do MS-DOS em C reescrito em Bash para sistemas UNIX-like.
Script para rápida navegação em diretórios usando fzf
Agilizar a navegação entre diretórios com um script Bash e fzf para criar um menu interativo dos últimos locais acessados
Diminuindo a Complexidade Cognitiva na Programação
Diminuir a complexidade cognitiva é importante para agilizar o trabalho e torná-lo mais agradável.
Deploy de aplicação usando curl
Como distribuir binários de aplicativos para Linux usando curl e scripts bash.