Passagem de parâmetros para funções tem como funcionar?

1. Passagem de parâmetros para funções tem como funcionar?

Morpheus
Minions

(usa Nenhuma)

Enviado em 16/08/2019 - 13:30h

Arquivo scritp.sh


-------------------------------------------

info(){


mediainfo "$1" > /tmp/codec.info

cat /tmp/codec.info


}

-------------------------------------------


Ex: ./scritp.sh info video\ tal.avi




  


2. Re: Passagem de parâmetros para funções tem como funcionar?

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 16/08/2019 - 15:24h

Tenta utilizar recebendo o parâmetro antes da função...


Arquivo scritp.sh


-------------------------------------------

PARAMETRO=$1
info(){


mediainfo "$PARAMETRO" > /tmp/codec.info

cat /tmp/codec.info




3. Re: Passagem de parâmetros para funções tem como funcionar?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 16/08/2019 - 15:31h

Segue:
#!/bin/bash

pega_parametro(){
printf " Argumento recebido: $*\n"
}

pega_parametro $* #Chama a função com o parâmetro informado na linha de comando



Importante!!! => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


4. Re: Passagem de parâmetros para funções tem como funcionar?

Morpheus
Minions

(usa Nenhuma)

Enviado em 16/08/2019 - 23:07h

Williamm escreveu:

Tenta utilizar recebendo o parâmetro antes da função...


Arquivo scritp.sh


-------------------------------------------

PARAMETRO=$1
info(){


mediainfo "$PARAMETRO" > /tmp/codec.info

cat /tmp/codec.info





Obrigado em responde ao tópico.

PARAMETRO=$1 não funciona

PARAMETRO=$2 funciona

Só que tem varias funções o arquivo essa variável (PARAMETRO=$2) entre as funções não pode gera algum problema?

Não teria algo do tipo C ou java?




5. Re: Passagem de parâmetros para funções tem como funcionar?

Morpheus
Minions

(usa Nenhuma)

Enviado em 16/08/2019 - 23:18h

msoliver escreveu:

Segue:
#!/bin/bash

pega_parametro(){
printf " Argumento recebido: $*\n"
}

pega_parametro $* #Chama a função com o parâmetro informado na linha de comando






Obrigado em responde ao tópico.


Coloquei um echo "$*" dentro da função e não mostrou nada. Será isso mesmo?

Ex: scritp função algo_digitado_pelo_usuario

Deveria pegar essa parte algo_digitado_pelo_usuario



6. Re: Passagem de parâmetros para funções tem como funcionar?

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 17/08/2019 - 12:02h

Aqui tem uma boa dica que como funciona:
https://www.vivaolinux.com.br/dica/Trabalhando-com-parametros-em-Shell-Script


A unida diferença que eu notei, e tive que utilizar, é que para usar o parâmetro passado dentro de uma função do script é salvando em uma variável fora da função, e depois buscando essa variável...

segue um exemplo...


#!/bin/bash

#-------------------------------------------------------------------------------------------------------
PARAMETRO="$1"
ID_PARAMETRO=$#
function Executa() {
echo "Iniciando script...`date +%H:%M:%S`"
if [ $ID_PARAMETRO -eq 0 ];then
echo "Nenhum parametro valido informado `date +%H:%M:%S`"
elif [ $PARAMETRO == "$PARAMETRO_BACKUP" ];then
echo "Iniciando upload `date +%H:%M:%S`"
echo "Parametro informado $PARAMETRO"
echo "Final do upload `date +%H:%M:%S`"
fi
echo "Final script...`date +%H:%M:%S`"
}
#-------------------------------------------------------------------------------------------------------

PARAMETRO_BACKUP="teste1"
Executa


PARAMETRO_BACKUP="teste2"
Executa


Utilizando


./script.sh teste1
./script.sh teste2


Não sei se tem alguma duvida, ou algum erro...



7. Re: Passagem de parâmetros para funções tem como funcionar?

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/08/2019 - 13:06h


Minions escreveu:

msoliver escreveu:

Segue:
#!/bin/bash

pega_parametro(){
printf " Argumento recebido: $*\n"
}

pega_parametro $* #Chama a função com o parâmetro informado na linha de comando


Obrigado em responde ao tópico.

Coloquei um echo "$*" dentro da função e não mostrou nada. Será isso mesmo?

Ex: scritp função algo_digitado_pelo_usuario

Deveria pegar essa parte algo_digitado_pelo_usuario

Boa tarde Minions.
Observe que a última linha do script, é:
Nome da função $*
Para executar o script faça:
./nomedoscript arg01 arg02 arg03
Obs. "$*" pega todos argumentos.

VEJA => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts