ksh88 是否使用 10#n 语法将数字解释为十进制?

ksh88 是否使用 10#n 语法将数字解释为十进制?

我想以最少的努力将带有前导零的数字视为小数,因此我打算使用以下语法:

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

以下语法适用于克什88

答案1

看起来是这样:

$ 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

来自“算术评估”部分手册页:

常量的形式为 [根据#]n在哪里 根据 是 2 到 36 之间的十进制数,表示算术基数,n是该基数中的一个数字。如果根据省略则使用基数 10。

相关内容