Otimizando a vida no Linux com Shell Script

Olá, sou

Joerverson

Santos

Linux?

Qual a sua experiência com o

O que é Shell Script?

Shell Script é uma poderosa ferramenta de automação de instruções. Com um arquivo de texto executável o usuário ou sistema é capaz de executar uma seqüência de operações, instruções e testes.

https://www.vivaolinux.com.br/~Virgilio

Vida fácil, bora?

Para facilitar nossa vida no terminal, vou motrar a vocês um utilitario ótimo para melhorar sua experiência no terminal.

https://ohmyz.sh

Mas antes de qualquer coisa, você conhece o VIM?

Continuando no embalo, vamos codar usando um famoso editor de texto no próprio terminal, o VIM.

Certo, agora vamos aprender a programar

Variáveis

NAME="John"
echo $NAME
echo "$NAME"
echo "${NAME}!"

Manipulação de Strings

NAME="John"
echo "Hi $NAME"  #=> Hi John
echo 'Hi $NAME'  #=> Hi $NAME

Execução condicional

git commit && git push
git commit || echo "Commit failed"

Condicionais

if [[ -z "$string" ]]; then
  echo "String is empty"
elif [[ -n "$string" ]]; then
  echo "String is not empty"
fi

Condicionais

[[ -z STRING ]] String Vazia
[[ -n STRING ]] String não está vazia
[[ STRING == STRING ]] Igual
[[ STRING != STRING ]] Não é Igual
[[ NUM -eq NUM ]] Igual
[[ NUM -ne NUM ]] Não é igual
[[ NUM -lt NUM ]] Menor que
[[ NUM -le NUM ]] Menor ou igual
[[ NUM -gt NUM ]] Maior que
[[ NUM -ge NUM ]] Maior igual

Loops

for ((i = 0 ; i < 100 ; i++)); do
  echo $i
done
for i in {1..5}; do
    echo "Welcome $i"
done

Matriz

Fruits=('Apple' 'Banana' 'Orange')

 

echo ${Fruits[0]} # "Apple"
echo ${Fruits[1]} # "Banana"
echo ${Fruits[2]} # "Orange"

Funções

get_name() {
  echo "My name is $1"
}

get_name "John"

Vamos brincar agora?

Aplicação  Prática

Vamos criar uma aplicação simples ao qual podemos zuar com nossos amigos e colegas do trabalho.

#! /bash/bin

 

main()

{

    # Comando para rodar a aplicação que fala ou instala caso não exista

    espeak "$1" || sudo apt-get install espeak

 

    # Comando para abrir o drive de disco

    eject

}

 

for ((;;)) do

     sleep 60 # rodando a cada minuto

    main "$(date '+%d/%m/%Y %H:%M:%S')"

done

Vamos rodar

Para rodar nossa brincadeirinha basta dar o seguinte comando

$ bash <file-name>.sh &

Referências

  • https://devhints.io/bash
  • https://www.vivaolinux.com.br/artigo/Bash-O-interpretador-de-comandos
  • https://www.cyberciti.biz/faq/linux-display-date-and-time/

 

deck

By Joeverson Santos