typeset はシェル変数と関数の属性と値を設定します。 関数内で typeset を実行すると、name が示す変数の新しいインスタンスが生成されます。 関数が完了すると、 その変数の値と型が復元されます。このコマンドには、 以下の属性を指定できます。
このフラグは UNIX 以外のマシン上で、 UNIX とホスト名ファイルとのマッピング情報を提供します。
左詰めを行い、先行する空白文字を value から取り除きます。 n は、 0 以外であればフィールドの幅を定義します。 0 の場合、 フィールドの幅は最初に代入される値の幅で決定されます。 変数に値を代入したとき、 フィールド幅より短ければ右側に空白文字が詰められ、 長ければ切り捨てられます。 -Z フラグも指定されていれば、 先行する 0 を削除します。 -R フラグは無効になります。
右詰めを行い、 先行する空白文字を挿入します。 n は、 0 以外であればフィールドの幅を定義します。 0 の場合、 フィールドの幅は最初に代入される値の幅で決定されます。 変数に値を代入したとき、 フィールド幅より短ければ左側に空白文字が詰められ、 長ければ終端が切り捨てられます。 -L フラグは無効になります。
最初の、空白文字でない文字が数字で、 かつ -L フラグが設定されていない場合、 右詰めを行い先頭に 0 を詰めます。 n は、 0 以外であればフィールドの幅を定義します。 0 の場合、 フィールドの幅は最初に代入される値の幅で決定されます。
名前は、 変数名ではなく関数名を指します。 代入は行われません。 このフラグと共に指定できる他のフラグは、-t、-u、 -x だけです。 -t フラグは、 この関数の実行トレースを有効にします。 -u フラグは、 この関数に「未定義」を示すマークを付けます。 関数が参照されると、 関数定義を見つけるために FPATH 変数が検索されます。 -x フラグを指定すると、 名前で呼び出されるシェル手続き全体で 関数定義が有効になります。
パラメタを整数とします。 これにより算術演算が高速化されます。 n は、 0 以外であればその値を底として定義します。 0 の場合、 最初の代入で底が決定されます。
大文字をすべて小文字に変換します。 大文字への変換を示す -u フラグを無効にします。
指定された name を読み取り専用にします。 後の代入でこれらの名前を変更できないようにします。
変数にタグを付けます。 タグはユーザーが定義可能で、 シェルに対して特別の意味を持ちません。
小文字をすべて大文字に変換します。 小文字への変換を示す -l フラグを無効にします。
指定された name に対し、 後で実行されるコマンドの「環境」へ 自動的にエクスポートされるようにマークを付けます。
-i 属性は、 -R、 -L、 -Z、 -f と同時に指定することはできません。
– の代わりに + を使用すると、 これらのフラグは無効になります。 name 引数をまったく指定せずにフラグを指定すると、 これらのフラグが設定されている変数の名前 (および選択により値も) が一覧表示されます。 具体的には – を付加すれば名前と値が、 + を付加すれば名前だけが表示されます。 name 引数とフラグを 1 つも指定しないと、 すべての変数の名前と属性が表示されます。
whence コマンドは、 name ごとに、 コマンド名として使用される場合に どのように解釈されるかを指示します。 -v フラグをつけると、より冗長に表示されます。 -p フラグをつけると、 コマンド名が別名、関数、 または予約語である場合でも name のパスが検索されます。
1 つまたは 2 つのアスタリスク(*)が先頭に付加されている ksh(1) コマンドは、 以下のような特殊な処理を受けます。
コマンドが完了しても、 コマンドの直前の 変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、 それを含むスクリプトは中止されます。
変数代入形式で、 ** から始まるコマンドに続くワードは、 変数代入と同一の規則で展開されます。 つまり、 チルド置換は = 符号の後に実行され、 ワード分割とファイル名生成は実行されません。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |