Funções no Unix - Diferentes tipos de função no Unix com sintaxe

Índice:

Anonim

Introdução às funções no Unix

Neste artigo, aprenderemos sobre algumas funções básicas no Unix. Muitos de nós já devem saber o que são funções, mas deixe-me fazer uma breve introdução sobre isso. Uma função contém um conjunto de instruções a serem executadas por um código escrito dentro de um bloco recuado. Isso é útil quando temos uma determinada tarefa que um programa deve executar repetidamente durante intervalos regulares de tempo. Escrever o mesmo código toda vez que obviamente não é recomendado, portanto, usando funções, podemos facilmente reutilizar o código e chamá-lo sempre que necessário. Vamos agora ver como podemos definir e implementar essas funções através do script do Unix Shell.

Sintaxe de funções no Unix

A criação de funções segue o código de sintaxe básico da seguinte maneira. Exemplo de exemplo de uma função.

Código

First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)

Aqui, escrevemos duas declarações de eco dentro de nossa Primeira Função. Para chamar a Função, podemos apenas chamar pelo nome da Função.

Resultado

Passando parâmetros para funcionar no Unix

Criamos com sucesso uma função simples, a denominamos e executamos os comandos que solicitamos. Agora, e se eu precisar adicionar dois números através dos valores inseridos pelo usuário? Então, aqui veríamos como podemos escrever uma função com argumentos. A sintaxe básica seria a mesma. Exemplo de função parametrizada

Código

Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)

Resultado

Isso nos solicitará a digitar um nome e desejar que eles

Da mesma forma, podemos até criar um arquivo de script. Vamos escrever uma função de adição dentro de um script de shell e ver como funciona.

Código

vi add.sh
echo “enter first number: “;
read a;
echo “enter the second number: “;
read b;
sum=$((a+b));
echo “ Result is $sum”;
*********************
Save the file with : wq!

Resultado

Nota: Às vezes, durante a execução do script sh, podemos obter o erro como:

O único que precisa fazer aqui é atualizar as permissões do arquivo.

Podemos até executar o arquivo sh usando o comando by. /add.sh

Da mesma maneira, podemos executar uma Função fornecendo argumentos de linha de comando. Então, vamos ver como podemos fazer isso adicionando três números.

Código

(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)

Agora podemos passar nossos números como argumentos da linha de comando e obter a saída necessária.

E se não passarmos argumentos para a Função?

E, se dermos apenas dois argumentos?

Senão, podemos passar cordas?

Podemos até ter nosso código de forma que ele possa ecoar um erro quando argumentos inválidos são transmitidos. Abaixo aqui, vamos ver como podemos pedir ao usuário para inserir argumentos se não houver argumentos da linha de comando passados.

Código

Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)

Resultado

Se não passarmos nenhum argumento para a nossa Função, ele emitirá um eco, onde pedimos para fornecer dois números de linha de comando e, em seguida, fornecer a saída da soma. Isso ocorre porque não dissemos à Função para parar se encontrarmos o erro. No segundo caso, podemos ver a saída dando soma corretamente, sem nenhum eco intermediário. Podemos até usar comandos de retorno ao retornar valores para essas funções do Unix. O valor na declaração de retorno está sendo armazenado em $?

Resultado

Como exercício, você pode tentar escrever uma função que interrompa se não passarmos os argumentos?

Funções aninhadas no Unix

Ao nomear, podemos descobrir que as funções aninhadas são sobre definir uma função dentro de uma função. Vamos ver como podemos fazer isso agora. Estamos escrevendo isso dentro de um script de shell para facilitar a compreensão.

Código

vi Nested_Function.sh
***** Code Inside the sh Function*******
#!/bin/sh
First()
(
echo “ Inside First Function “;
echo “ Calling the second function below “;
echo “**********”;
Second
echo “**********”;
echo “ After calling Second function “;
)
Second()
(
echo “ Inside Second Function”;
echo “ Done “;
)
First
************************
Save the file with : wq!

Resultado

No exemplo acima, acabamos de chamar a segunda função dentro da primeira. Vamos agora escrever uma função somente dentro da primeira função.

Código

vi Nest_Func1.sh
***** Code Inside the sh Function*******
First_One()
(
echo “ Inside the function First_One”;
echo “ Below is the inner function “;
Second_One()
(
echo “ ********** “;
echo “ Inside Inner function”;
echo “ Completed Second Function”;
echo “ ********** “;
)
echo “Done with second example too”;
)
First_One
Second_one
************************
Save the file with : wq!

Agora, qual saída você espera? Você acha que os detalhes da primeira e da segunda funções seriam exibidos?

Resultado

Podemos ver claramente que a Função não chamou a função interna dentro dela. Então, qual é o problema aqui?

Dentro do nosso script, chamamos apenas a primeira função. Agora tente chamar a segunda função também. Como observado, aqui não poderemos chamar a Função por si só. No código acima, destacamos o código adicionado.

Resultado

Observe que o eco que escrevemos após a execução da Segunda Função chegou antes de si. Agora, se tentarmos chamar a segunda função primeiro, seguida pela primeira?

Resultado

Podemos entender claramente que, até que a principal / primeira função seja chamada, a função interna não será chamada. Como exercício, você pode tentar adicionar dois números usando Funções aninhadas? (Um para inserir valores do usuário e outros para adicionar os números)

Conclusão

Então, é assim que podemos definir funções no Unix. E uma grande vantagem que encontrei no Unix foi que o erro na saída pode ser facilmente entendido e pode ajudar a retificar nosso código de acordo. Tente executar essas funções e use o comando return também. Tenha um aprendizado feliz no Unix.

Artigo recomendado

Este foi um guia de funções no Unix. Aqui discutimos uma introdução às Funções no Unix e diferentes tipos de funções, juntamente com explicações de sintaxe e detalhes. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Arquitetura Unix
  2. Comandos Unix
  3. Usos do Unix
  4. Perguntas da entrevista UNIX
  5. Guia para Operadores Unix