UNIXの変数データ型

UNIXの変数データ型

私はUNIXについて読み始めました、そして変数定義に触れました。 Webサイトによると、構文を使用して直接定義されたUNIX変数を指しますvariable_name=value

変数に関連するデータ型はありませんか?

答え1

POSIX標準によると、環境変数は関連データ型を持たない一般的な文字列です。

ただし、拡張機能を使用すると、一部のシェル(たとえばbash、、kshなど)では、数値、配列などの変数型の入力が可能になりますksh93zsh読み取り専用または事前フォーマットされた変数もサポートできます。

通常、typeset組み込み関数を使用してdeclare入力されます。

以下は整数テストの例ですksh93

$ typeset -i var
$ var=abc
$ echo $var # non numerical -> set to zero
0
$ var=0xffff # hexadecimal
$ echo $var
65535
$ var=0xffffffff
$ echo $var
-1           # ksh93 integers are 32 bit signed
$ var=2147483649
$ echo $var
-2147483647  # overflow

ルール機能を使用すると、変数ksh93にカスタムタイプを割り当てることができます。

答え2

シェルスクリプトには1つのデータ型しかありません。すべてがテキストです。さまざまなコマンドは、必要に応じてテキストを異なる方法で解釈できます。

$ [ "1" -eq "01" ] && echo yes || echo no
yes
$ [ "1" = "01" ] && echo yes || echo no
no

最初のテストでは、合計を数値として1解釈します。 2番目のテストでは、合計を8進数として解釈します。012番目のテストではこれを文字列として扱います。

関連情報