Ksh

ksh88 是否使用 10#n 語法將數字解釋為十進制?

  • January 16, 2015

我想以最少的努力將前導零的數字視為小數,因此我打算使用以下語法:

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

以下語法適用於ksh88嗎?

看起來是這樣的:

$ 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

從手冊頁的“算術評估”部分:

常量的格式為 [ base# ] n,其中 base 是 2 到 36 之間的十進制數,表示算術基數,n是該基數中的數字。如果省略base,則使用 base 10。

引用自:https://unix.stackexchange.com/questions/179460