On Tue, 30 May 2006 5:24pm  -0300, RAUL LEOPOLDO LONGHI wrote:

> is_time() {
>         now=`date|awk '{print $4}'`
>         $now
> }
>
> até aqui tranquilo. O meu problema é que estou tentando pegar esse
> retorno e atribuir a uma variavel, mas nao tah dando certo.
>
> start_time=is_time         (nao da certo)
>
> start_time=$(is_time)         (nao da certo)

Em UNIX/shell o único tipo de "retorno" que existe é um valor de 0 a 255.

Qualquer outra coisa tu precisa usar outros mecanismos. Um desses
mecanismos é tu pegar o resultado (output, não confunda resultado com
código de retorno) de uma chamada (seja de um software, seja de uma
função, seja de qualquer coisa).

No teu $now, troca por:

  printf "%s" "$now"

Assim:

  is_time()
  {
    now=$(date | awk '{ print $4 }')
    printf "%s" "$now"
  }

OBS: Prefira sempre usar $(), como tu usou na tua tentativa de pegar o
retorno, no lugar de ``. Assim a tua segunda tentativa vai funcionar:

  % start_time=$(is_time)
  % print $start_time
  22:13:03

--
Felipe Kellermann


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil




Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a