shift - シェルの引数のリスト、またはフィールドで区切られた単語をずらすためのシェル組み込み関数
shift [n]
shift [variable]
* shift [n]
+shift [n]
$n+1 . . .から始まる一連の定位置パラメータを、次の名前に変更します。$1 . . . と同じになります。n を指定しない場合、 1 と見なされます。
argv のコンポーネント (または variable が指定されればその変数のコンポーネント) を、 左へずらして最初のコンポーネントを切り捨てます。未設定の変数および NULL 値に対してはエラーとなります。
$n+1 $n+1 . . . の定位置パラメータを $1 . . . という名前に変更します。n のデフォルト値は 1 です。パラメータ n に指定できる値は、評価結果が $# 以下の負でない数になる算術式です。
このマニュアルページでは、1 つまたは 2 つのアスタリスク (*) が先頭に付加されている ksh88(1) コマンドは、次の方法で特殊な処理を受けます。
コマンドが完了しても、コマンドの直前の変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
変数代入形式で、** から始まるコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号のあとに実行され、ワード分割とファイル名生成は実行されません。
shift は、定位置パラメータを n または 1 (n を省略した場合) で定義された桁数ずつ左にシフトする特別な組み込みシェルです。残りの定位置パラメータの数は、シフトされる桁数だけ削減されます。
n を指定した場合は、シフトする桁数を決定する算術式として評価されます。定位置パラメータの数よりも大きくシフトしたり、負の桁数をシフトしたりすると、エラーが発生します。
ksh の shift では、次の終了値が返されます。
正常終了。定位置パラメータは正常にシフトされました。
エラーが発生した。
このマニュアルページでは、1 つまたは 2 つの + (プラス符号) が先頭に付加されている ksh(1) コマンドは、次のような特殊な処理を受けます。
コマンドが完了しても、コマンドの直前の変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
これらは有効な関数名ではありません。
変数代入形式で、++ を先頭に持つコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号のあとに実行され、フィールド分割とファイル名生成は実行されません。
属性についての詳細は、マニュアルページの attributes(7) を参照してください。
|