formata e retorna o status em ksh

3

Eu gostaria de poder declarar um var local como resultado de um comando AND para poder capturar o status de retorno do comando.

Algo parecido com isto:

#!/bin/ksh
typeset -r command_output=$(command)
typeset -r return_status=$?
echo "$return_status" # always 0

O problema com o código de trecho acima é return_status sempre será 0, mesmo se o comando sair com outro código de status.

Alguém para me ajudar?

    
por pierrefevrier 24.03.2015 / 22:53

1 resposta

3

O problema é que typeset cria o status de retorno. Este código (ou seja, ambas as atribuições na mesma declaração) funciona para mim:

typeset -r command_output=$(command) return_status=$?

Para manter o return_status gravável (não somente leitura), você pode fazer:

typeset    command_output=$(command) return_status=$?
typeset -r command_output

(isto é, declare a variável somente leitura como o comando subseqüente).

    
por 24.03.2015 / 22:59