Bashスクリプトの宣言と一般変数の違いは何ですか?

Bashスクリプトの宣言と一般変数の違いは何ですか?

Bashスクリプトでは:

変数名を指定して変数を作成します。

abc=ok

または私達は利用できますdeclare

declare abc=ok

違いは何ですか?

Bashにはなぜ変数を生成する方法がたくさんありますか?

ベストアンサー1

からhelp -m declare

名前

    declare- 変数の値と属性を設定します。

要約

    declare[-aAfFgilnrtux][-p][name[ ] ...]=value

説明する

    変数の値と属性を設定します。

    変数を宣言し、属性を割り当てます。名前を指定しないと、すべての変数の属性と値が表示されます。

    オプション:

      -f
        動作または表示を関数名と定義に制限する
      -F
        関数名のみを表示するように制限します(デバッグ時に行番号とソースファイルを含む)。
      -g
        シェル関数で使用されたときにグローバル変数を生成します。それ以外の場合は無視されます。
      -p
        各NAMEの属性と値を表示

    プロパティ設定オプション:

      -a
        NAMEをインデックス配列にする(サポートされている場合)
      -A
        NAMEを連想配列にする(サポートされている場合)
      -i
        NAMEに「整数」属性を持つように設定
      -l
        割り当て時にNAMEを小文字に変換
      -n
        NAME を値の名前付き変数への参照にします。
      -r
        NAMEを読み取り専用に設定
      -t
        NAMEに「trace」属性を持つように設定
      -u
        割り当て時にNAMEを大文字に変換
      -x
        名前のエクスポート

    使用+「変える」-' 指定された属性をオフにします。

    整数属性を持つ変数は、let変数に値を割り当てるときに算術評価を行います(コマンドを参照)。

    関数内で使用するときにコマンドをdeclare使用するのと同じように、NAMEをローカル名にします。localこれ-g'オプションはこの動作を抑制します。

    終了ステータス:
    無効なオプションが指定された場合、または変数割り当てエラーが発生しない限り成功を返します。

また、見ることができます

    大きな打撃(1)

実装する

    GNU bash, バージョン 4.3.11(1)-リリース (i686-pc-linux-gnu)
    著作権 (C) 2013 Free Software Foundation, Inc.
    ライセンス GPLv3+: GNU GPL バージョン 3 以降 <http:// gnu.org/ ライセンス/gpl.html>


したがって、declare変数値を設定するにはと属性

2つのプロパティの使い方を示すために、非常に簡単な例を使用します。

$ # First Example:
$ declare -r abc=ok
$ echo $abc
ok
$ abc=not-ok
bash: abc: readonly variable


$ # Second Example:
$ declare -i x=10
$ echo $x
10
$ x=ok
$ echo $x
0
$ x=15
$ echo $x
15
$ x=15+5
$ echo $x
20

上記の例で理解する必要があるようです。declare変数は普通の変数を超えています!このタイプのdeclare操作は、関数とスクリプトのループに役立ちます。

また、訪問入力変数:宣言または組版

おすすめ記事