typeset - 変数に属性と値を割り当てる

形式

typeset ±f [tux] name …

typeset [±lprtuxH] [±iLRZ[number]] [variable[=value] ….]

説明

オプションを指定せずに typeset を起動すると、すべての変数とその属性のリストが表示されます。このリストは変数名で分類され、引用符が付いているため、組み込みコマンド eval でシェルに再入力することができます。 形式 +option の引数だけが指定されている場合、typeset は、指定されたすべての属性の集合を持つ変数のリストを 表示します。形式 option の引数だけがある場合、typeset は、指定されたすべての属性の集合を持つ変数のリストを表示し、さらにその値も表示します。

f オプションが使用された場合、typeset は関数に適用されます。それ以外の場合は、変数に適用されます。関数に対して適用可能な他のオプションは 、–t–u および –x だけです。

コマンド行に少なくとも 1 つの変数があれば、各変数の属性は変更されます。 この場合、形式 option のパラメーターは、関連する属性をオンにします。形式 +option のパラメーターは、関連する属性をオフに します (予期するのとは反対に、- はオン を + はオフ を意味し ます)。形式 variable=value のパラメーターは、関連する属性をオンにし、さらに valuevariable に割り当てます。

関数の中で typeset が起動されると、各変数の新しいインスタンスが作成されます。関数が終了した後、各変数は、関数が呼び出される前の値と属性に復元されます。

オプション

–f
関数の属性を指定します。
–H
POSIX からホスト名へのファイルのマッピングを実行します。
–i[number]
各変数が整数値を持っていることをマークします。こうしておくと、算術演算が速くなります。number が指定されていてゼロ以外の場合、各 variable の出力ベースは number です。デフォルト は 10 進数です。
–l
変換に割り当てられた値をすべて大文字から小文字に変換し ます。現在 –u オプションがオンになっている場合、このオプションでそれをオフにします。
–p
出力を共用プロセスに書き込みます。このオプションは現在使用されません。
–r
各変数を読み取り専用にします。readonly を参照してください。
–t
各変数にタグを付けます。タグはユーザー定義で、シェルに対しては何の意味もありません。–f オプションを持つ関数については、このオプションで xtrace オプションをオンにします。 xtrace オプションについては、set を参照してください。
–u
変数に割り当てられた値をすべて小文字から大文字に変換しま す。現在 –l オプションがオンになっている場合、このオプションで それをオフにします。

–f と共に使用する場合、–u オプションは、コマンド行で 指定された関数がまだ定義されていないことを示します。typeset コマンドで指定した属性は、いったん定義されると関数に 適用されます。

–x
各変数を自動エクスポート用に設定します。export を参照してください。
次の 3 つのオプションは、各変数に割り当てられた値を、フィールド内部で位置調整します。フィールドの幅は、number が定義 されていてゼロ以外の場合、その値になります。それ以外の場合、フィールドの幅は、変数に最初に割り当てられた幅になります。
–L[number]
各変数に割り当てられた値を、最初に先行ブランクを除去して、左寄せします。–Z オプションがオンになっていた場合も、同様に先行ゼロは除去されます。次にブランクがフィールドの終わりに追加されるか、または 値の終わりが必要に応じて切り捨てられます。–R フラグが現在オンになっている場合、このオプションでそれをオフにします。
–R[number]
先行ブランクを追加するか、または必要に応じて値の初めを切り捨てて、各変数に割り当てられた値を右寄せします。–L フラグが現在オンになっている場合、このオプションでそれをオフにします。
–Z[number]
各変数に割り当てられた値を右寄せします。値の最初の非ブランク文字が数字の場合、先行ゼロが使用されます。–L オプションも参照してください。

使用上の注意

typeset は、別のユーティリティーと同様に組み込みシェル・コマンドです。

オートロード関数は、コマンド名として呼び出されたときに、/bin/sh シェルによって定義 (ロード) されます。これはシェルに対して既に定義されているものではなく、関数定義ファイルは FPATH 変数で指定されるディレクトリーに入っています。 (詳細については、sh コマンドのコマンド実行を参照してください。) オートロード関数を置換するには、unset -f name コマンドを使用します。 次回にその関数名が呼び出されたときに、FPATH 検索で新しいバージョンが検出されます。

ローカライズ

typeset は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_MESSAGES
  • NLSPATH

詳しくは、ローカライズを参照してください。

終了値

0
正常終了
2
コマンド行引数が正しくないための失敗。

コマンドを使用して変数の値を表示した場合、終了状況の値は、誤りのある名前の数になります。

メッセージ

以下の エラー・メッセージが出される可能性があります。
Base number not in [2,36]
–i オプションを使用して、整数の基数を指定しましたが、基数が 2 から 36 の範囲にありませんでした。基数はすべてこの範囲内になければなりません。
name not a function
ある名前を関数として宣言しようとしましたが、その名前はすでに関数以外の何か (例えば、変数) で参照されています。

移植性

POSIX.2. これは POSIX.2 および XPG 標準の拡張です。

関連情報

exportreadonlysh