形式
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 のパラメーターは、関連する属性をオンにし、さらに value を variable に割り当てます。
関数の中で 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 標準の拡張です。