shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Valor da variável do subshell para o shell


From: Julio C. Neves
Subject: Re: [shell-script] Re: Valor da variável do subshell para o shell
Date: Wed, 24 May 2017 09:05:30 -0300

Fala grande Tiago (por onde vc anda, rapaz? Voltou?)
Agora eu é que vou te complementar:

Não acho que return N seja um mal nome, uma vez que ele encerra uma função voltando (=return) para o main devolvendo (=returning) N.

É graças ao cmd return N que, assim com o exit N, joga N na variável $? que te permite saber se a função (e não o prg, pois neste caso seria o exit N) foi bem sucedido ou não.O

Ou seja, o return N tem as mesmas funções e sintaxe do exit N, só que, como diria o Malluf, estupra mas não mata... ;)

Já disse mas vou repetir pq antes eu dava 4 treinamentos/ano na 4 Linux e agora são só 2 por ano. Se vc estiver querendo fazer um curso de shell de 40 horas, sendo eu o instrutor. No próximo dia 29 (daqui a 5 dias) começará uma turma na 4Linux (SP). Depois deste, só terá outro em Dezembro (se meu fígado resistir até lá ;).

Além de aprender todos os pulos do gato (quem já fez meu curso sabe que ele é um intensivão de pulo do gato), vai dar um mergulho muito fundo em expressões regulares e vou apresentar rapidamente o YAD, que é o sucessor do zenity, porém infinitas vezes mais completo/complexo que ele.

Não me pergunte valores que não sei. Sou contratado pela 4Linux somente para dar o treinamento, mas é a empresa de treinamento em SL mais séria e organizada com a qual já trabalhei (por isso sobrevive há mais de 20 anos).

Abcs,
Julio

Damos treinamento em sua empresa por 
um preço, 
no mínimo, 50% mais barato que qualquer curso,
com certificado e nota fiscal.

​​
Nosso time de instrutores in company é formado somente por
autores
​ ​
de Best Sellers
​ ​
​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico


Em 24 de maio de 2017 08:34, Tiago Peczenyj address@hidden [shell-script] <address@hidden.br> escreveu:
 

Ola

Permita-me completar a resposta do Julio ( como se fosse possivel... )

o return dentro de funções do bash não funciona como o return de outras linguagens de programação - alias eu acho um pessimo nome nesse contexto, confunde as coisas.

o return vai emular o comando exit, por isso os valores que podem ser retornados são limitados. isso esta mais ligado a tratamento de erros, por exemplos.




2017-05-24 0:51 GMT+02:00 'Julio C. Neves' address@hidden [shell-script] <address@hidden.br>:
 

Hola Pere,
os brasileiros não precisam do Google translate traduzir espanhol. Aqui
todos entendem bem o seu idioma.

Tanto o return como o exit, só recebem números entre 0 e 255, mas veja essa
função:

function teste
{
{
echo Esta línea va a la pantalla
echo y esta también
} > /dev/tty
echo Pero esta vuelta a la variable retorno
}; export -f teste

retorno=$(teste)
echo $retorno

Abcs,
Julio

*​Damos treinamento em sua empresa por *
*um preço, no mínimo, 50% mais barato que qualquer curso,*
*com certificado e nota fiscal.*

​​
Nosso time de instrutores *in company* é formado somente por


autores
​ ​

de
*Best Sellers​ ​*​laureados ​sobre os temas. P. exemplo:

Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo Cadunico

2017-05-23 18:44 GMT-03:00 'T.Collons' address@hidden [shell-script] <
address@hidden.br>:

>
>
> Hola a todos, como Julio me ha dicho varias veces, habla en castellano no
> en goole-translate.
>
>
> Yo tambien tengo esa duda, en bash se como hacer para que una funcion
> retorne un numero, "return 99999", por ejemplo, pero si lo que queremos
> obtener es una variable o un texto, alguien sabe como hacerlo?.
>
> un ejemplo tonto
>
>
> *function ejemplo*
>
> *{*
>
> *local mirecepcion="$?"*
>
> *[ $mirecepcion == "soy tonto" ] && devolver="es verdad" || devolver="No
> es verdad"*
>
> *return devolver*
>
> *}*
>
>
>
> *devolver="Que soy?" *
>
> *ejemplo "soy tonto"*
>
> *echo $devolver*
>
>
>
> *ejemplo "no soy tonto" *
>
> *echo $devolve*r
>
> como veis quiero obtener el resultado de la variable devolver.
>
> Ya se que si la variable es global siempre tendra el resultado de ella,
> pero si os fijais en la funcion la declaro como local, no se si me explico
> bien?
>
>
> Saludos a todos
>
>
>
> El 23/05/17 a les 21:46, address@hidden [shell-script] ha escrit:
>
>
>
> Caro Tiago
>
> Nesse exemplo estou imaginando que só precise do código de retorno, e não
> da saída do ls
>
> O que imagino é que poderia fazer dessa maneira:
>
> $ retorno=$(ls /etc >/dev/null; echo $?); echo $retorno
>
>
> ou usando um arquivo temporário como:
>
> $ (ls /etc >/dev/null; echo $? > /tmp/arq_tmp); cat /tmp/arq_tmp
>
> Isso é o que deseja? Atende sua expectativa?
>
> []'s
> Itamar
>
>
> --
>
>
>
> Pere
>
> address@hidden
>
>
>
> <http://www.imatge.com/>
>
> ------------------------------------
>
> AVIS LEGAL
>
> Nota de confidencialitat: Aquest missatge podria contenir missatges
> d'empresa i altre informació confidencial tutelada per les lleis de Europea
> i altres estats, Si Vostè el rep per error o sense ser una de les persones
> esmenades a la capçalera, haurà de destruir-lo sense copiar-lo ni
> revelar-l'ho o qualsevol altre acció relacionada amb el contingut del
> missatge i notificar-ho per correu electrònic a l'emissor del missatge.
>
> Les persones o entitats que incompleixin els deures de confidencialitat
> podran ésser perseguides davant dels Tribunals de Justícia sota l'empar de
> la legislació civil, penal i administrativa nacional i internacional.
>
> Gracies per la seva cooperació.
>
> ------------------------------------
>
> LEGAL NOTICE
>
> Confidentiality notice: This mail may include business and other
> confidential information protected under the laws of and other territories.
> if you are not one of the intended recipients of the message, you are
> legally obliged to delete the message content. Furthermore, you are kindly
> requested to report immediately the incident to the sender.
>
> Breach of confidentiality duties is a serious criminal offence in and
> other territories. Offenders shall be legally prosecuted worldwide.
>
> Thank you for your cooperation.
>
>
>
>
>

[As partes desta mensagem que não continham texto foram removidas]




--
Tiago B. Peczenyj

http://about.me/peczenyj



reply via email to

[Prev in Thread] Current Thread [Next in Thread]