Tutorial de funções Bash

Tutorial de funções Bash
Uma função bash é uma coleção de comandos que pode ser executada repetidamente. O objetivo da função é facilitar a leitura dos scripts da Bash e impedir que você digite o mesmo script. As funções bash são consideravelmente restritas em comparação com as da maioria das linguagens de programação. Para execução passo a passo, este arquivo contém vários comandos. Embora esses comandos possam ser inseridos simplesmente na linha de comando, é mais conveniente salvar todos os comandos interconectados para uma determinada operação em um único arquivo de uma perspectiva de reutilização. Podemos utilizar esse arquivo para executar o conjunto especificado de comandos, uma única hora ou várias vezes, dependendo de nossas necessidades. Passaremos pelas funções Fundamentals of Bash nesta lição e demonstraremos como usá -las em scripts de shell.

Exemplo 1

Uma função é uma seção de código que pode ser chamada várias vezes para realizar tarefas específicas na programação. O comprimento do código diminui e a modularidade do programa é fornecida. A ilustração mais básica do aplicativo de uma função no script bash é mostrada no seguinte:

#!/BIN/BASH
BashFunction ()
eco olá, meus amigos Linux

BashFunction

No script anterior, definimos a função BashFunction. Dentro dele, temos uma declaração de eco. Então, chamamos a função BashFunction Para executar a função.

A saída da função básica do BASH é impressa no terminal:

linuxhint@hp34: ~ chmod +x teste.sh; ./teste.sh
Olá, meus amigos Linux
linuxhint@hp34: ~ $

Exemplo 2

Podemos passar argumentos e processar dados com funções Bash, como em outras linguagens de programação. Semelhante à passagem dos parâmetros da linha de comando para um script de bash, podemos inserir dados na função. Devemos adicionar os parâmetros imediatamente após o nome da função para fornecer qualquer número de argumentos à função Bash. Ao chamar a função, podemos passar os argumentos diretamente e usar os valores $ 1, $ 2,… $ n para acessá -los dentro da função.

#!/BIN/BASH
multiply_two_numbers ()
Produto local = $ (($ 1*$ 2))
Produto de eco de $ 1 e $ 2 é $ produto

Multiply_two_numbers 5 2

No script anterior, criamos a função Multiply_two_numbers. Na função, criamos a variável produtos e atribuiu a equação do produto a ser calculada. O comando echo é então usado para imprimir o resultado do cálculo para o produto de dois valores. Depois disso, fornecemos os dois argumentos, 5 e 2, atribuídos à função Multiply_two_numbers.

A concha do terminal após a execução do script é mostrada na imagem a seguir:

linuxhint@hp34: ~ chmod +x teste.sh; ./teste.sh
Produto de 5 e 2 é 10
linuxhint@hp34: ~ $

Exemplo 3

A maioria das linguagens de programação suporta a idéia de funções que retornam um valor. Isso implica que a função deve retornar os dados ao local do qual é chamado. As funções bash não suportam retornar um valor quando são chamadas, diferentemente das funções em linguagens de programação reais. No entanto, eles nos dão a opção de estabelecer um status de retorno, que funciona de maneira semelhante ao status de saída usado por um programa ou comando para rescindir.

A variável $? é alocado a palavra retornar, que pode ser empregado para descrever o estado atual do retorno. A função é encerrada pela declaração de retorno, que também serve como o status de saída da função.

#!/BIN/BASH
my_function ()
retornar 14

my_function
eco o valor retornado é $?

No roteiro, primeiro, estabelecemos uma função my_function. Na função, temos uma palavra -chave de retorno que leva o valor 14. Então, invocamos a função my_function, que tem uma declaração de eco que retornará o valor para $?.

O script bash em saída o valor especificado para um comando de retorno da seguinte forma:

linuxhint@hp34: ~ chmod +x teste.sh; ./teste.sh
O valor retornado é 14
linuxhint@hp34: ~ $

Exemplo 4

Em um script, uma variável global é uma variável que pode ser acessada em qualquer local e não tem restrições em seu escopo. Mesmo que uma variável seja declarada dentro de uma função, ela é definida automaticamente como uma variável global. Variáveis ​​também podem ser criadas localmente. Uma vez alocados pela primeira vez, as variáveis ​​locais podem ser especificadas dentro do corpo da função usando a palavra -chave local. Somente essa função permite que você os acesse. O mesmo nome pode ser dado a variáveis ​​locais criadas em outras funções.

#!/BIN/BASH
var1 = "gato"
Animal_names_fun ()
Var2 local = "cachorro"
var3 = "ovelha"
eco "o nome do primeiro animal é $ var1"
eco "o nome do segundo animal é $ var2"

Animal_names_fun
eco "o nome do primeiro animal é $ var1"
eco "o nome do primeiro animal é $ var2"
eco "o nome do primeiro animal é $ var3"

O script bash começa com a declaração da variável global VAR1 e inicializa com o valor de uma string. Então, criamos a função Animal_names_fun. Para a função Animal_names_fun, Definimos a variável local com a palavra -chave local e uma variável global. As variáveis ​​locais e globais foram definidas com os nomes VAR2 e VAR3, e também definimos seus valores. Então, ecoando a variável global VAR1 dentro da função e a variável local VAR2 dentro da função. Depois disso, chamamos a função Animal_names_fun e acessou as variáveis ​​globais VAR1 e VAR3, que geralmente é executado, mas como estamos tentando acessar a variável local Val2 Fora da função especificada, ele retornará um valor vazio.

Você pode notificar a saída de acesso às variáveis ​​locais e globais no programa Bash da seguinte forma:

linuxhint@hp34: ~ chmod +x teste.sh; ./teste.sh
O nome do primeiro animal é gato
O nome do segundo animal é cachorro
O nome do primeiro animal é gato
O nome do primeiro animal é
O nome do primeiro animal é ovelha
linuxhint@hp34: ~ $

Exemplo 5

Ao nomear uma função da mesma forma que o comando que queremos substituir, podemos optar por substituir os comandos Bash. Por exemplo, devemos escrever uma função chamada eco Se pretendermos substituir o comando ECHO.

Essa idéia de substituir os comandos bash pode ser útil em algumas circunstâncias, como quando queremos utilizar um comando com opções específicas. Além disso, existem situações em que não queremos repetir o comando inteiro com opções dentro do script. Podemos usar opções para alterar o comando Bash integrado nessas situações. Vamos usar um exemplo para entender melhor a idéia de substituir comandos no script de shell de bash:

#!/BIN/BASH
echo ()
ECHO BUNDINA -N 'DATA +"[%m -%d%h:%m:%s]"' ":"
eco embutido $ 1

eco "Bem -vindo aos meus blogs."

No script de bash anterior, temos uma função eco. Dentro da função de eco, substituímos o comando Echo e inserimos o método de registro de data e hora integrado como um argumento para o comando Echo.

A saída da função de substituição do BASH é exibida na imagem a seguir:

linuxhint@hp34: ~ chmod +x teste.sh; ./teste.sh
[12-06 15:54:50]: Bem-vindo aos meus blogs.
linuxhint@hp34: ~ $

Conclusão

Discutimos a função Bash neste tópico. Um pedaço de código reutilizável criado explicitamente para uma determinada tarefa é chamado de função Bash. Uma vez definido, ele pode ser usado várias vezes em um script. Bash se envolve com o sistema operacional para realizar comandos recebidos do shell depois de lê -los. Uma característica fantástica do Bash é que ele permite que você combine muitos de seus comandos e funções em um único script executável, o que facilita a organização do seu trabalho.