実際のケースdeclare
と違いを説明できる人はいますか?typeset
答え1
Zhong 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
。
答え2
declare
私は悪を避けるのに役立つケースを知っていますeval
。可変間接:
$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value