| Chave | Descrição | Exemplo |
|---|---|---|
$@ |
Expande todos os argumentos passados ao script como uma lista separada. Útil para loops. | for arg in "$@"; do echo $arg; done – Itera sobre todos os argumentos passados ao script. |
$* |
Expande todos os argumentos passados ao script como uma única string. | echo "$*" – Exibe todos os argumentos como uma única string. |
$# |
Retorna o número de argumentos passados ao script. | echo "Número de argumentos: $#" – Mostra quantos argumentos foram fornecidos ao script. |
$? |
Retorna o código de saída do último comando executado. | comando; echo $? – Exibe o código de saída do comando anterior. |
$0 |
Nome do script em execução. | echo "Nome do script: $0" – Mostra o nome do script. |
${!VARIAVEL[@]} |
Retorna os índices de um array. | arr=("a" "b" "c"); echo ${!arr[@]} – Mostra os índices do array arr (0 1 2). |
${VARIAVEL[@]} |
Expande todos os elementos de um array. | arr=("a" "b" "c"); for i in "${arr[@]}"; do echo $i; done – Itera sobre os elementos do array arr. |
${VARIAVEL[*]} |
Expande todos os elementos de um array como uma única string. | arr=("a" "b" "c"); echo "${arr[*]}" – Exibe todos os elementos do array como uma string (a b c). |
${#VARIAVEL} |
Retorna o comprimento de uma string ou o número de elementos em um array. | texto="Hello"; echo ${#texto} – Mostra o comprimento da string texto (5). |
${VARIAVEL:-padrao} |
Retorna o valor da variável ou um valor padrão se a variável estiver vazia/não definida. | echo ${nome:-"Usuário"} – Mostra "Usuário" se a variável nome estiver vazia/não definida. |
${VARIAVEL:+sub} |
Retorna sub se a variável estiver definida, caso contrário retorna nada. |
nome="John"; echo ${nome:+Olá} – Mostra "Olá" se nome estiver definida. |
${VARIAVEL:inicio:len} |
Retorna uma substring a partir de uma posição inicial e comprimento específico. | texto="Olá Mundo"; echo ${texto:4:5} – Retorna "Mundo". |
Last active
October 4, 2024 17:12
-
-
Save nicolas-oliveira/333b7f092b8d0f8b9cecbd05b78f5b16 to your computer and use it in GitHub Desktop.
Bash Script Documentação e sintaxe completa
| Tipo de Dado | Descrição | Exemplo | Comando / Sintaxe |
|---|---|---|---|
| String | Sequência de caracteres que não precisa de declaração explícita. | texto="Olá Mundo" |
texto="valor" |
| Inteiro (Integer) | Números inteiros. | numero=123 |
numero=123 |
| Array Unidimensional | Lista indexada de valores. Cada valor pode ser acessado via índices. | arr=("valor1" "valor2" "valor3") |
arr=("item1" "item2") |
| Array Associativo | Arrays cujas chaves são strings ao invés de índices numéricos. Requer Bash 4+. | declare -A frutas; frutas[maçã]="vermelha"; frutas[banana]="amarela" |
declare -A nome_array |
| Booleano (True/False) | Não há um tipo explícito. Geralmente é manipulado com 0 e 1 (ou vazio), ou através de comandos. | [ $var -eq 1 ] && echo "True" |
[ condição ] |
| Null (Vazio) | Representa a ausência de valor. Uma variável não definida é considerada nula. | unset variavel ou variavel="" |
unset variavel ou variavel="" |
| Constantes (Read-Only) | Valores que não podem ser modificados após a inicialização. | readonly PI=3.1415 |
readonly nome_variavel=valor |
| Comando Subsistema (Command) | Utiliza o resultado de um comando como valor. | data=$(date) |
variavel=$(comando) |
| Expressões Regulares | Utilizadas para realizar comparações de padrões em strings. | [[ "arquivo.txt" =~ .*\.txt$ ]] |
[[ string =~ regex ]] |
| Cadeia de Comandos (Pipelines) | Executa uma sequência de comandos e utiliza seu resultado como valor para outro. | resultado=$(ls | grep .txt) |
comando1 | comando2 |
| Arithmetics | Operações matemáticas em inteiros. | resultado=$((5 + 3)) |
$((expressão)) |
| File Descriptor | Manipula arquivos abertos e redireciona entradas e saídas. | exec 3>arquivo.txt; echo "teste" >&3; exec 3>&- |
exec fd>arquivo ou exec fd<arquivo |
| Variáveis de Ambiente | Variáveis globais do sistema que podem ser acessadas dentro dos scripts. | echo $HOME |
$NOME_VARIAVEL |
| Ação | Comando / Sintaxe | Exemplo | Descrição |
|---|---|---|---|
| Obter comprimento de uma string | ${#string} |
texto="Olá Mundo"; echo ${#texto} |
Retorna o comprimento da string (número de caracteres). |
| Substring | ${string:posicao:comprimento} |
texto="Olá Mundo"; echo ${texto:4:5} |
Extrai uma parte da string a partir de uma posição específica. |
| Substituir parte da string | ${string/padrao/substituto} |
texto="foo bar"; echo ${texto/foo/baz} |
Substitui a primeira ocorrência do padrão pela string substituta. |
| Substituir todas as ocorrências | ${string//padrao/substituto} |
texto="foo foo"; echo ${texto//foo/baz} |
Substitui todas as ocorrências do padrão pela string substituta. |
| Remover substring (prefixo) | ${string#padrao} |
texto="prefixo_arquivo"; echo ${texto#prefixo_} |
Remove o menor prefixo que corresponda ao padrão. |
| Remover substring (sufixo) | ${string%padrao} |
texto="arquivo.txt"; echo ${texto%.txt} |
Remove o menor sufixo que corresponda ao padrão. |
| Converter para minúsculas | ${string,,} |
texto="OLA"; echo ${texto,,} |
Converte todos os caracteres da string para minúsculas. |
| Converter para maiúsculas | ${string^^} |
texto="ola"; echo ${texto^^} |
Converte todos os caracteres da string para maiúsculas. |
| Remover todos os espaços | echo "$string" | tr -d ' ' |
texto="olá mundo"; echo "$texto" | tr -d ' ' |
Remove todos os espaços da string. |
| Dividir string em array | IFS='delimitador'; read -ra array <<< "$string" |
IFS=' '; texto="foo bar"; read -ra arr <<< "$texto"; echo ${arr[1]} |
Divide a string em um array com base no delimitador fornecido. |
| Verificar se contém substring | [[ $string == *substring* ]] |
texto="Olá Mundo"; [[ $texto == *Mundo* ]] && echo "Contém" |
Verifica se a string contém uma determinada substring. |
| Concatenar strings | resultado="$string1$string2" |
texto1="Olá"; texto2=" Mundo"; resultado="$texto1$texto2"; echo $resultado |
Concatena duas ou mais strings. |
| Substring reversa | ${string: -N} |
texto="abcdef"; echo ${texto: -3} |
Retorna os últimos N caracteres da string. |
| Remover todos os espaços extras | echo "$string" | xargs |
texto=" olá mundo "; echo "$texto" | xargs |
Remove espaços extras no início, no fim e entre palavras, deixando apenas um espaço. |
| Inverter string | echo "$string" | rev |
texto="abcd"; echo "$texto" | rev |
Inverte a ordem dos caracteres da string. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment