Variáveis básicas em Bash

Introdução ao Bash Scripting

Alex Scriven

Data Scientist

Atribuindo variáveis

Como em outras linguagens, você pode atribuir variáveis com o sinal de igual.

var1="Moon"

Depois, referencie com a notação $.

echo $var1
Moon
Introdução ao Bash Scripting

Atribuindo variáveis de texto

Dê um nome sensato para sua variável:

firstname='Cynthia'
lastname='Liu'

echo "Hi there" $firstname $lastname
Hi there Cynthia Liu

As duas variáveis foram exibidas — legal!

Introdução ao Bash Scripting

Esquecendo a notação $

Se você esquecer a notação $, não é variável!

firstname='Cynthia'
lastname='Liu'
echo "Hi there " firstname lastname
Hi there firstname lastname
Introdução ao Bash Scripting

(Não) atribuindo variáveis

Bash não perdoa espaços na criação de variáveis. Evite adicionar espaços!

var1 = "Moon"
echo $var1
script.sh: line 3: var1: command not found
Introdução ao Bash Scripting

Aspas simples, duplas e backticks

Em Bash, aspas diferentes significam coisas diferentes — tanto ao criar variáveis quanto ao imprimir.

  • Aspas simples ('sometext') = o Shell interpreta literalmente o conteúdo
  • Aspas duplas ("sometext") = o Shell interpreta literalmente exceto para $ e backticks

A última forma cria um "shell dentro do shell", abaixo. Útil para chamar programas de linha de comando. Isso é feito com backticks.

  • Backticks (`sometext`) = o Shell executa o comando e captura o STDOUT na variável
Introdução ao Bash Scripting

Criando variáveis de formas diferentes

Vamos ver o efeito dos diferentes tipos de criação de variável

now_var='NOW'

now_var_singlequote='$now_var' echo $now_var_singlequote
$now_var
now_var_doublequote="$now_var"
echo $now_var_doublequote
NOW
Introdução ao Bash Scripting

O programa date

O programa date é útil para demonstrar backticks

Saída normal deste programa:

date
Mon  2 Dec 2019 14:07:10 AEDT
Introdução ao Bash Scripting

Shell dentro do shell

Agora, vamos usar o shell dentro do shell:

rightnow_doublequote="The date is `date`."
echo $rightnow_doublequote
The date is Mon 2 Dec 2019 14:13:35 AEDT.

O programa date foi chamado, a saída capturada e combinada in-line com echo.

Usamos um shell dentro do shell!

Introdução ao Bash Scripting

Parênteses vs. backticks

Há um equivalente à notação com backticks:

rightnow_doublequote="The date is `date`."
rightnow_parentheses="The date is $(date)."
echo $rightnow_doublequote
echo $rightnow_parentheses
The date is Mon 2 Dec 2019 14:54:34 AEDT.
The date is Mon 2 Dec 2019 14:54:34 AEDT.

Ambas funcionam igual, mas backticks são mais antigos. Parênteses são mais usados hoje. (Veja http://mywiki.wooledge.org/BashFAQ/082)

Introdução ao Bash Scripting

Vamos praticar!

Introdução ao Bash Scripting

Preparing Video For Download...