O ksh88 interpreta um número como decimal usando a sintaxe 10 # n?

3

Eu gostaria de tratar um número com zero à esquerda como um decimal com o mínimo esforço então pretendo usar a seguinte sintaxe:

x=08
y=$(( 10#$x - 1 ))

A seguinte sintaxe funcionará em ksh88 ?

    
por xuesheng 16.01.2015 / 16:35

1 resposta

3

Aparece assim:

$ command -v ksh
/usr/bin/ksh
$ what /usr/bin/ksh
/usr/bin/ksh:
        Version M-11/16/88i
        SunOS 5.8 Generic 110662-24 Apr 2007
$ ksh

$ x=08
$ y=$(( 10#$x - 1 ))
$ echo "$x - $y"
08 - 7

Na seção "Avaliação aritmética" da página do manual :

Constants are of the form [ base# ] n where base is a decimal number between two and thirty-six representing the arithmetic base and n is a number in that base. If base is omitted then base 10 is used.

    
por 16.01.2015 / 16:58

Tags