回答:
ではbash
、typeset
と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
。
help typeset
はなく、にのみ表示されることに注意してくださいman typeset
。
typeset
時代遅れと見なされるのかを知ることはないでしょうか?
私declare
は悪を避けるのに役立つケースを知っていますeval
:変数の間接参照:
$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value
typeset
とdeclare
?