Os scripts Bash podem ser usados para vários fins, como executar um comando shell, executar vários comandos juntos, personalizar tarefas administrativas, realizar automação de tarefas, etc. Portanto, o conhecimento dos fundamentos da programação bash é importante para todos os usuários do Linux. Este artigo o ajudará a ter uma ideia básica sobre a programação do bash. A maioria das operações comuns de script bash são explicadas com exemplos muito simples aqui.
Os tópicos a seguir de programação bash são abordados neste artigo.
- Olá Mundo
- Comando Eco
- Comentários
- Comentário multilinha
- While Loop
- For Loop
- Obtenha a opinião do usuário
- Declaração If
- E Condição se declaração
- Ou Condição se declaração
- Condição Else if e else
- Condição do Caso
- Obtenha argumentos da linha de comando
- Obtenha argumentos da linha de comando com nomes
- Combine duas strings em uma variável
- Obter Substring de Strings
- Adicione 2 números em uma variável
- Crie uma função
- Use Parâmetros de Função
- Passe o valor de retorno do script
- Criar diretório
- Faça o diretório verificando a existência
- Leia um arquivo
- Excluir um arquivo
- Anexar ao arquivo
- Teste se o arquivo existe
- Exemplo de envio de e-mail
- Obter a data atual de análise
- Comando de Espera
- Comando Dormir
Crie e execute o primeiro programa BASH:
Você pode executar o script bash a partir do terminal ou executando qualquer arquivo bash. Execute o seguinte comando no terminal para executar uma instrução bash muito simples. A saída do comando será ‘ Olá Mundo '.
$jogou fora 'Olá Mundo'
Abra qualquer editor para criar um arquivo bash. Aqui, nano editor é usado para criar o arquivo e o nome do arquivo é definido como ‘ First.sh ’
$nanoFirst.sh
Adicione o seguinte script bash ao arquivo e salve o arquivo.
#! / bin / bashjogou fora 'Olá Mundo'
Você pode executar o arquivo bash de duas maneiras. Uma maneira é usar o comando bash e outra é definir a permissão de execução para o arquivo bash e executar o arquivo. Ambas as formas são mostradas aqui.
$bashFirst.shOu,
$chmoda + x First.sh$./First.sh
Uso do comando echo:
Você pode usar o comando echo com várias opções. Algumas opções úteis são mencionadas no exemplo a seguir. Quando você usa ' jogou fora 'Sem qualquer opção, então uma nova linha é adicionada por padrão. ‘-N’ opção é usada para imprimir qualquer texto sem nova linha e '-E' opção é usada para remover caracteres de barra invertida da saída. Crie um novo arquivo bash com um nome, ‘ echo_example.sh ’E adicione o seguinte script.
#! / bin / bashjogou fora 'Imprimir texto com nova linha'
jogou fora -n 'Imprimir texto sem nova linha'
jogou fora -E ' nRemovendo tbarra invertida tpersonagens n'
Execute o arquivo com o comando bash.
$bashecho_example.sh
Uso do comentário:
‘#’ O símbolo é usado para adicionar um comentário de linha única no script bash. Crie um novo arquivo chamado ‘ comment_example.sh ’ e adicione o seguinte script com um comentário de linha única.
#! / bin / bash# Adicione dois valores numéricos
((soma=25+35))
#Imprima o resultado
jogou fora $ soma
Execute o arquivo com o comando bash.
$bashcomment_example.sh
Uso de comentário multilinha:
Você pode usar o comentário de várias linhas no bash de várias maneiras. Uma maneira simples é mostrada no exemplo a seguir. Crie um novo bash chamado, ‘Multiline-comment.sh’ e adicione o seguinte script. Aqui, ‘:’ e ' símbolos são usados para adicionar comentários de várias linhas no script bash. O script a seguir calculará o quadrado de 5.
#! / bin / bash:'
O seguinte script calcula
o valor quadrado do número, 5.
'
((área=5*5))
jogou fora $ area
Execute o arquivo com o comando bash.
$bashmultiline-comment.sh
Você pode verificar o link a seguir para saber mais sobre o uso do comentário bash.
https://linuxhint.com/bash_comments/
Usando While Loop:
Crie um arquivo bash com o nome, ‘While_example.sh’, saber o uso de enquanto ciclo. No exemplo, enquanto loop irá iterar por 5 vezes. O valor de contar variável irá incrementar em 1 em cada etapa. Quando o valor de contar variável será 5, então o enquanto o loop será encerrado.
#! / bin / bashválido=verdade
contar=1
enquanto [ $ válido ]
Faz
jogou fora $ count
E se [ $ count -eq 5 ];
então
pausa
ser
((contagem ++))
feito
Execute o arquivo com o comando bash.
$bashwhile_example.sh
Você pode verificar o link a seguir para saber mais sobre o uso do loop while.
https://linuxhint.com/bash-while-loop-examples/
Usando For Loop:
O básico para declaração de loop é mostrada no exemplo a seguir. Crie um arquivo chamado ‘ for_example.sh ’E adicione o seguinte script usando para ciclo. Aqui, para loop irá iterar por 10 tempos e imprimir todos os valores da variável, contador em linha única.
#! / bin / bashpara (( contador=10; contador>0; contador--))
Faz
jogou fora -n '$ contador'
feito
printf ' n'
Execute o arquivo com o comando bash.
$bashfor_example.sh
Você pode usar o loop for para diferentes propósitos e maneiras em seu script bash. Você pode verificar o link a seguir para saber mais sobre o uso do loop for.
https://linuxhint.com/bash-for-loop-examples/
Obtenha a opinião do usuário:
' leitura 'Comando é usado para obter a entrada do usuário no bash. Crie um arquivo chamado ‘ user_input.sh 'E adicione o seguinte script para obter a entrada do usuário. Aqui, um valor de string será obtido do usuário e exibirá o valor combinando outro valor de string.
#! / bin / bashjogou fora 'Digite seu nome'
leituranome
jogou fora 'Receber$ namepara LinuxHint '
Execute o arquivo com o comando bash.
$bashuser_input.sh
Você pode verificar o link a seguir para saber mais sobre o uso da entrada do usuário.
https://linuxhint.com/bash-script-user-input/
Usando a instrução if:
Você pode usar a condição if com uma ou várias condições. O bloco inicial e final desta declaração é definido por 'E se' e 'ser' . Crie um arquivo chamado ‘ simple_if.sh 'Com o seguinte script para saber o uso E se declaração em bash. Aqui, 10 é atribuído à variável, n . se o valor de $ n for menor que 10, então a saída será É um número de um dígito , caso contrário, a saída será É um número de dois dígitos . Para comparação, ‘-Lt’ é usado aqui. Para comparação, você também pode usar ‘-Eq’ para igualdade , '-nascido' para não igualdade e ‘-Gt’ para Maior que no script bash.
#! / bin / bashn=10
E se [ $ n -lt 10 ];
então
jogou fora 'É um número de um dígito'
outro
jogou fora 'É um número de dois dígitos'
ser
Execute o arquivo com o comando bash.
$bashsimple_if.sh
Usando a instrução if com a lógica AND:
Diferentes tipos de condições lógicas podem ser usados na instrução if com duas ou mais condições. Como você pode definir várias condições na instrução if usando E a lógica é mostrada no exemplo a seguir. '&&' é usado para aplicar E lógica de E se demonstração. Crie um arquivo chamado ‘If_with_AND.sh’ para verificar o código a seguir. Aqui, o valor de nome do usuário e senha variáveis serão retiradas do usuário e comparadas com ' admin ' e ' segredo ’. Se ambos os valores corresponderem, a saída será usuário válido , caso contrário, a saída será usuário Inválido .
! /sou/bashjogou fora 'Insira nome de usuário'
leituranome do usuário
jogou fora 'Digite a senha'
leiturasenha
E se [[ ( $ nome de usuário=='admin' && $ senha=='segredo' ) ]];então
jogou fora 'usuário válido'
outro
jogou fora 'usuário Inválido'
ser
Execute o arquivo com o comando bash.
$bashif_with_AND.sh
Usando a instrução if com lógica OR:
' || 'É usado para definir OU lógica em E se doença. Crie um arquivo chamado ‘If_with_OR.sh’ com o seguinte código para verificar o uso de OU lógica de E se demonstração. Aqui, o valor de n será obtido do usuário. Se o valor for igual a quinze ou Quatro cinco então a saída será Vc venceu o jogo , caso contrário, a saída será Você perdeu o jogo .
#! / bin / bashjogou fora 'Digite qualquer número'
leituran
E se [[ ( $ n -eq quinze || $ n -eq Quatro cinco ) ]]
então
jogou fora 'Você venceu o jogo'
outro
jogou fora 'Você perdeu o jogo'
ser
Execute o arquivo com o comando bash.
$bashif_with_OR.sh
Usando a instrução else if:
O uso de mais se condição é um pouco diferente no bash do que em outras linguagens de programação. ‘ elif 'É usado para definir mais se condição em bash. Crie um arquivo chamado, ‘ elseif_example.sh ’E adicione o seguinte script para verificar como mais se é definido no script bash.
#! / bin / bashjogou fora 'Digite seu número da sorte'
leituran
E se [ $ n -eq 101 ];
então
jogou fora 'Você ganhou o primeiro prêmio'
elif [ $ n -eq 510 ];
então
jogou fora 'Você ganhou o segundo prêmio'
elif [ $ n -eq 999 ];
então
jogou fora 'Você ganhou o 3º prêmio'
outro
jogou fora 'Desculpe, tente da próxima vez'
ser
Execute o arquivo com o comando bash.
$bashelseif_example.sh
Usando a declaração do caso:
Caso declaração é usada como a alternativa de if-elseif-else demonstração. O bloco inicial e final desta declaração é definido por ‘ caso ' e ' esac ’. Crie um novo arquivo chamado, ‘ case_example.sh ’E adicione o seguinte script. O resultado do seguinte script será o mesmo do anterior mais se exemplo.
#! / bin / bashjogou fora 'Digite seu número da sorte'
leituran
caso $ n no
101)
jogou fora jogou fora 'Você ganhou o primeiro prêmio' ;;
510)
jogou fora 'Você ganhou o segundo prêmio' ;;
999)
jogou fora 'Você ganhou o 3º prêmio' ;;
*)
jogou fora 'Desculpe, tente da próxima vez' ;;
esac
Execute o arquivo com o comando bash.
$bashcase_example.sh
Obtenha argumentos da linha de comando:
O script Bash pode ler a entrada do argumento da linha de comando como outra linguagem de programação. Por exemplo, $ 1 e $ 2 variáveis são usadas para ler o primeiro e o segundo argumento da linha de comando. Crie um arquivo chamado command_line.sh e adicione o seguinte script. Dois valores de argumento lidos pelo script a seguir e imprimem o número total de argumentos e os valores dos argumentos como saída.
#! / bin / bashjogou fora 'Total de argumentos: $ #'
jogou fora '1º argumento = $ 1'
jogou fora '2º argumento = $ 2'
Execute o arquivo com o comando bash.
$bashcommand_line.sh Linux Hint
Você pode verificar o link a seguir para saber mais sobre o uso do argumento da linha de comando.
https://linuxhint.com/command_line_arguments_bash_script/
Obtenha argumentos da linha de comando com nomes:
Como você pode ler argumentos de linha de comando com nomes é mostrado no script a seguir. Crie um arquivo chamado, ‘ command_line_names.sh ’ e adicione o seguinte código. Aqui, dois argumentos, X e E são lidos por este script e imprimem a soma de X e Y.
#! / bin / bashparanervosono '[email protegido]'
Faz
índice= $(jogou fora $ arg | cortar -f1 -d=)
horas= $(jogou fora $ arg | cortar -f2 -d=)
caso $ index no
X) x=$ horas;;
E) e=$ horas;;
*)
esac
feito
((resultado= x + y))
jogou fora 'X + Y =$ resultado'
Execute o arquivo com o comando bash e com dois argumentos de linha de comando.
$bashcommand_line_namesX=Quatro cinco E=30
Combine variáveis String:
Você pode facilmente combinar variáveis de string no bash. Crie um arquivo chamado string_combine.sh e adicione o seguinte script para verificar como você pode combinar variáveis de string em bash colocando variáveis juntas ou usando '+' operador.
#! / bin / bashstring1='Linux'
string2='Dica'
jogou fora '$ string1$ string2'
string3=$ string1+$ string2
string3 + ='é um bom site de blog tutorial'
jogou fora $ string3
Execute o arquivo com o comando bash.
$bashstring_combine.sh
Obtenha substring de String:
Como outras linguagens de programação, o bash não tem nenhuma função incorporada para cortar o valor de quaisquer dados de string. Mas você pode executar a tarefa de substring de outra maneira no bash, que é mostrada no script a seguir. Para testar o script, crie um arquivo chamado ‘ substring_example.sh 'Com o seguinte código. Aqui, o valor, 6 indica o ponto de partida de onde a substring começará e 5 indica o comprimento da substring.
#! / bin / bashStr='Aprenda Linux com LinuxHint'
subStr=$ {Str: 6: 5}
jogou fora $ subStr
Execute o arquivo com o comando bash.
$bashsubstring_example.sh
Adicione dois números:
Você pode fazer as operações aritméticas no bash de diferentes maneiras. Como você pode adicionar dois números inteiros em bash usando colchetes duplos, é mostrado no script a seguir. Crie um arquivo chamado ‘ add_numbers.sh 'Com o seguinte código. Dois valores inteiros serão obtidos do usuário e impressos o resultado da adição.
#! / bin / bashjogou fora 'Digite o primeiro número'
leiturax
jogou fora 'Digite o segundo número'
leiturae
(( soma= x + y))
jogou fora 'O resultado da adição =$ soma'
Execute o arquivo com o comando bash.
$bashadd_numbers.sh
Você pode verificar o link a seguir para saber mais sobre a aritmética bash.
https://linuxhint.com/bash_arithmetic_operations/
Criar Função:
Como você pode criar uma função simples e chamar a função é mostrado no script a seguir. Crie um arquivo chamado ‘ function_example.sh ’E adicione o seguinte código. Você pode chamar qualquer função apenas pelo nome, sem usar qualquer colchete no script bash.
#! / bin / bashfunçãoF1()
{
jogou fora 'Eu gosto de programação bash'
}
F1
Execute o arquivo com o comando bash.
$bashfunction_example.sh
Criar função com parâmetros:
O Bash não pode declarar parâmetros ou argumentos da função no momento da declaração da função. Mas você pode usar parâmetros em função usando outra variável. Se dois valores forem passados no momento da chamada da função, as variáveis $ 1 e $ 2 serão usadas para ler os valores. Crie um arquivo chamado ‘ função | _parameter.sh ’E adicione o seguinte código. Aqui, a função, ‘ Rectangle_Area ’ irá calcular a área de um retângulo com base nos valores dos parâmetros.
#! / bin / bashRectangle_Area() {
área= $(($ 1 * $ 2))
jogou fora 'Área é:$ area'
}
Rectangle_Area10 vinte
Execute o arquivo com o comando bash.
$bashfunction_parameter.sh
Passe o valor de retorno da função:
A função Bash pode passar valores numéricos e de string. Como você pode passar um valor de string da função é mostrado no exemplo a seguir. Crie um arquivo chamado, ‘ function_return.sh ’E adicione o seguinte código. A função, saudações() retorna um valor de string para a variável, horas que imprime mais tarde combinando com outra string.
#! / bin / bashfunçãosaudações() {
p='Olá,$ name'
jogou fora $ str
}
jogou fora 'Digite seu nome'
leituranome
horas= $(saudações)
jogou fora 'O valor de retorno da função é$ horas'
Execute o arquivo com o comando bash.
$bashfunction_return.sh
Você pode verificar o link a seguir para saber mais sobre o uso da função bash.
https://linuxhint.com/return-string-bash-functions/
Criar diretório:
Bash usa ‘ mkdir 'Comando para criar um novo diretório. Crie um arquivo chamado ‘ make_directory.sh ’E adicione o seguinte código para obter um novo nome de diretório do usuário. Se o nome do diretório não existir no local atual, ele criará o diretório, caso contrário, o programa exibirá um erro.
#! / bin / bashjogou fora 'Digite o nome do diretório'
leituranewdir
``mkdir $ newdir``
Execute o arquivo com o comando bash.
$bashmake_directory.sh
Faça o diretório verificando a existência:
Se você deseja verificar a existência de um diretório no local atual antes de executar o ‘ mkdir ', Então você pode usar o seguinte código. ‘-D 'Opção é usada para testar se um determinado diretório existe ou não. Crie um arquivo chamado, ‘ directory_exist.sh ’ e adicione o seguinte código para criar um diretório verificando a existência.
#! / bin / bashjogou fora 'Digite o nome do diretório'
leiturandr
E se [ -d '$ ndir' ]
então
jogou fora 'Diretório existe'
outro
``mkdir $ ndir``
jogou fora 'Diretório criado'
ser
Execute o arquivo com o comando bash.
$bashdirectory_exist.sh
Você pode verificar o link a seguir para saber mais sobre a criação de diretório.
https://linuxhint.com/bash_mkdir_not_existent_path/
Leia um arquivo:
Você pode ler qualquer arquivo linha por linha no bash usando loop. Crie um arquivo chamado, ‘ read_file.sh ’E adicione o seguinte código para ler um arquivo existente chamado,‘ book.txt '.
#! / bin / bashArquivo='book.txt'
enquanto leituralinha;Faz
jogou fora $ linha
feito < $ file
Execute o arquivo com o comando bash.
$bashread_file.shExecute o seguinte comando para verificar o conteúdo original de ‘ book.txt ' Arquivo.
$gatobook.txt
Você pode verificar o link a seguir para saber as diferentes maneiras de ler o arquivo.
https://linuxhint.com/read_file_line_by_line_bash/
Excluir um arquivo:
' rm 'Comando é usado em bash para remover qualquer arquivo. Crie um arquivo chamado ‘ delete_file.sh 'Com o código a seguir para obter o nome do arquivo do usuário e removê-lo. Aqui, '-eu' opção é usada para obter permissão do usuário antes de remover o arquivo.
#! / bin / bashjogou fora 'Digite o nome do arquivo para remover'
leiturafn
rm -eu $ fn
Execute o arquivo com o comando bash.
$ls$bashdelete_file.sh
$ls
Anexar ao arquivo:
Novos dados podem ser adicionados a qualquer arquivo existente usando '>>' operador em bash. Crie um arquivo chamado ‘Append_file.sh ’E adicione o seguinte código para adicionar novo conteúdo no final do arquivo. Aqui, ' Aprendendo o Laravel 5 'Será adicionado em' book.txt ’ depois de executar o script.
#! / bin / bashjogou fora 'Antes de anexar o arquivo'
gatobook.txt
jogou fora 'Learning Laravel 5'>>book.txt
jogou fora 'Depois de anexar o arquivo'
gatobook.txt
Execute o arquivo com o comando bash.
$bashappend_file.sh
Teste se o arquivo existe:
Você pode verificar a existência do arquivo no bash usando '-E' ou ‘-F’ opção. ‘-F’ opção é usada no script a seguir para testar a existência do arquivo. Crie um arquivo chamado, ‘ file_exist.sh ’E adicione o seguinte código. Aqui, o nome do arquivo passará da linha de comando.
#! / bin / bashnome do arquivo=$ 1
E se [ -f '$ filename' ];então
jogou fora 'O arquivo existe'
outro
jogou fora 'Arquivo não existe'
ser
Execute os comandos a seguir para verificar a existência do arquivo. Aqui, book.txt arquivo existe e book2.txt não existe no local atual.
$ls$bashfile_exist.sh book.txt
$bashfile_exist.sh book2.txt
Enviar email:
Você pode enviar e-mail usando ‘ correspondência ' ou ' enviar correio 'Comando. Antes de usar esses comandos, você deve instalar todos os pacotes necessários. Crie um arquivo chamado, ‘ mail_example.sh ’E adicione o seguinte código para enviar o e-mail.
#! / bin / bashDestinatário= admin@example.com
Sujeito= Saudação
Mensagem= Bem-vindo ao nosso site
``correspondência-s $ Assunto $ Recipient <<< $ Message``
Execute o arquivo com o comando bash.
$bashmail_example.sh
Obter a data atual de análise:
Você pode obter o valor de data e hora do sistema atual usando ` encontro `comando. Cada parte do valor de data e hora pode ser analisada usando ' Y ',' m ',' d ',' H ',' M ' e ' S ’ . Crie um novo arquivo chamado ‘ date_parse.sh ’ e adicione o seguinte código para separar os valores de dia, mês, ano, hora, minuto e segundo.
#! / bin / bashAno=``encontro+%E``
Mês=``encontro+%m``
Dia=``encontro+%d``
Hora=``encontro+%H``
Minuto=``encontro+%M``
Segundo=``encontro+%S``
jogou fora ``encontro``
jogou fora 'A data atual é:$ Dia-$ Mês-$ Year'
jogou fora 'A hora atual é:$ Hora:$ Minuto:$ Segundo'
Execute o arquivo com o comando bash.
$bashdate_parse.sh
Comando de espera:
esperar é um comando integrado do Linux que aguarda a conclusão de qualquer processo em execução. esperar comando é usado com um determinado ID de processo ou ID de trabalho. Se nenhum ID de processo ou ID de trabalho for fornecido com o comando de espera, ele aguardará a conclusão de todos os processos filho atuais e retornará o status de saída. Crie um arquivo chamado ‘ wait_example.sh ’ e adicione o seguinte script.
#! / bin / bashjogou fora 'Comando de espera' E
process_id=$!
esperar $ process_id
jogou fora 'Saiu com o status $?'
Execute o arquivo com o comando bash.
$bashwait_example.sh
Você pode verificar o seguinte link para saber mais sobre o comando de espera.
Comando Sleep:
Quando você deseja pausar a execução de qualquer comando por um período específico de tempo, você pode usar dormir comando. Você pode definir a quantidade de atraso por segundos (s), minutos (m), horas (h) e dias (d). Crie um arquivo chamado ‘Sleep_example.sh’ e adicione o seguinte script. Este script aguardará 5 segundos após a execução.
#! / bin / bashjogou foraEsperarpara 5segundos
dormir 5
jogou foraConcluído
Execute o arquivo com o comando bash.
$bashsleep_example.sh
Você pode verificar o seguinte link para saber mais sobre o comando sleep.
https://linuxhint.com/sleep_command_linux/
Espero que, depois de ler este artigo, você tenha obtido um conceito básico sobre a linguagem de script bash e seja capaz de aplicá-lo com base em seus requisitos.