宣言と組版の違いは何ですか?

宣言と組版の違いは何ですか?

実際のケースdeclareと違いを説明できる人はいますか?typeset

答え1

Zhong bashtypesetそしてdeclareまったく同じです。唯一の違いは、typeset使用されなくなったと見なされることです。

typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
    Set variable values and attributes.

    Obsolete.  See `help declare'.

マニュアルページにはそれらが一緒にリストされています。

declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
    Declare variables and/or give them attributes.

typeset他のシェルに移植可能(例:ksh93.)シェル間移植が目標である場合は使用してくださいtypeset(そして呼び出し方法が移植可能であることを確認してください)。移植性に興味がなければdeclare

答え2

declare私は悪を避けるのに役立つケースを知っていますeval可変間接:

$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value

関連情報