GoGPT Best VPN GoSearch

OnWorksファビコン

yash - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで yash を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド yash です。

プログラム:

NAME


yash - POSIX 準拠のコマンドラインシェル

SYNOPSIS


ヤシュ [オプション...] [ - ] [オペランド...]

はじめに


まだ an shell (yash) は、UNIX 系オペレーティング システム用のコマンド ライン シェルです。 シェル
POSIX.1-2008 標準に (ほとんどの部分で) 準拠しており、実際にはそれ以上です。
他の POSIX 準拠シェルよりも準拠しています。 さらに、多くの機能を備えています。
コマンド履歴やコマンドライン編集などの対話型の使用に使用されます。

このプログラムは、GNU General の条件に基づいて自由に変更および再配布できます。
パブリックライセンス (バージョン 2)。   of この プログラム is at 自分の リスク。 そこに is いいえ
保証     著者 is 責任 どれか 結果 生じました by つかいます of この
プログラム。

このマニュアルは、クリエイティブ・コモンズの規約に基づいて自由に変更および再配布できます。
表示 - 継承 2.1 日本。

Yash は、Magicant としても知られる渡邊裕貴 (WATANABEYuki) によって開発および保守されています。 ヤシュ
開発プロジェクトと Yash のホームページは OSDN によってホストされています。

呼び出し


プログラムとして呼び出される場合、yash は事前定義された初期化手順を実行し、
コマンドを繰り返し読み取り、実行します。 呼び出し時に指定されるコマンドライン引数
シェルがそれ自体を初期化し、コマンドを実行する方法を決定します。

Command ライン 引数
yash のコマンドライン引数の構文は POSIX に準拠しています。 POSIX で定義されているように、
引数は次のように分割されます オプション   オペランド。 についてのさらに詳しい説明については、
オプションとオペランドについては、「コマンド引数の構文」を参照してください。 すべてのオプションはオペランドの前に指定する必要があります。
オペランドの解釈は、指定されたオプションによって異なります。

あなたが指定するとき -c (--コマンドライン) オプションを使用するには、少なくとも XNUMX つのオペランドを指定する必要があります。 シェル
最初のオペランドをコマンド文字列として解釈して実行します。 XNUMX 番目のオペランド (存在する場合)
を初期化するために使用されます 0 特別なパラメータ。 他のオペランドがある場合は、次の目的で使用されます。
位置パラメータを初期化します。 とき -c (--コマンドライン) オプションが指定されている場合、
シェルは、ファイルまたは標準入力を読み取りません (ドット組み込みが使用されない限り)。

指定した場合 -s (--標準入力) オプションを使用すると、シェルは標準入力を読み取り、
コマンドとして入力し、実行します。 指定されたすべてのオペランドは、
位置パラメータ。 The 0 特別なパラメータはシェルの名前に初期化されます。
として呼び出されます。

どちらも指定しない場合は、 -c (--コマンドライン)また -s (--標準入力) オプションを使用すると、シェルはファイルを読み取ります。
ファイルの内容をコマンドとして解釈し、実行します。 最初のオペランドで指定するのは、
ファイルのパス名。 残りのオペランドは、位置指定を初期化するために使用されます。
パラメーター。 オペランドを何も指定しない場合、シェルは標準入力を次のように読み取ります。
-s (--標準入力)オプションが指定されています。

両方を使用することはできません -c (--コマンドライン)と -s (--標準入力) オプションを一度に選択できます。

どちらかを指定すると、 - 助けて or - バージョン オプションを使用すると、シェルは通常の処理を実行しません。
初期化またはコマンドの実行。 代わりに、簡単な使用法を出力するだけです ( - 助けて)または
バージョン情報( - バージョン)。 もし - バージョン オプションには、 -v
(-詳細) オプションを使用すると、シェルは利用可能なオプション機能のリストも出力します。

指定した場合 -i (- 相互の作用) オプションを選択すると、シェルは対話モードになります。 もし
あなたが指定する +i (++インタラクティブ) オプションの場合、逆に、シェルは決して
インタラクティブモード。

指定した場合 -l (- ログインする) オプションを指定すると、シェルはログイン シェルとして動作します。

当学校区の --プロファイルなし, --norcfile, - プロフィール, --rcfile オプションはシェルがどのようなものであるかを決定します
初期化されています(詳細については以下を参照)。

上記以外にも指定できるオプションは以下の通りです。
内蔵のセットに。

最初のオペランドが - オプションとオペランドは次のように区切られていません。 --
最初のオペランドは無視されます。

初期化 of ヤシュ
Yash は次のように自身を初期化します。

1. Yash はまず、呼び出された名前を解析します。 名前がで始まる場合 -、 シェル
ログインシェルとして動作します。 もしその名前が sh (次のような名前を含む) /bin/sh
シェルは POSIX 的に正しいモードになります。

2. オペランドを指定せず、標準入力と標準エラーの両方が接続されている場合
端末に接続すると、シェルは対話モードに入ります。 +i (++インタラクティブ)
オプションが指定されています。

3. ジョブ制御は、対話型シェルで自動的に有効になります。 +m (++モニター)
オプションが指定されています。

4. Yash は、次のファイルからコマンドを読み取り、実行します (実際のファイルを除く)
シェルプロセスの実効ユーザーIDが異なる、または実際のグループと実効グループが異なる
シェルプロセスのIDは異なります):

1. ログイン シェルとして動作している場合、シェルは、
--profile =ファイル名 オプションでない限り、 --プロファイルなし オプションが指定されているかシェル
POSIX 的に正しいモードです。

Status --profile =ファイル名 オプションが指定されていない場合、シェルは次のように読み取ります。 ~/.yash_profile
デフォルトとして。

2. 対話モードの場合、シェルはコマンドによって指定されたファイルを読み取ります。
--rcfile =ファイル名 オプションでない限り、 --norcfile オプションが指定されています。

Status --rcfile =ファイル名 オプションが指定されていない場合、シェル

· 読む ~/.yashrc POSIX 的に正しいモードでない場合はデフォルトとして。 または

· の値に対してパラメータ展開を実行します。 ENV 環境変数と
にある場合、展開結果を読み取るファイルの名前として扱います。
POSIX 的に正しいモード。

注意
Yash が自動的に読み取ることはありません / etc / profile、/etc/yashrc、または 〜/ .profile。

構文


シェルはコマンドを XNUMX 行ずつ読み取り、解析し、実行します。 複数ある場合
コマンドを XNUMX 行に入力すると、すべてのコマンドが実行前に解析されます。 コマンドを継続した場合
次の行に進むと、シェルはコマンドを完了するのに十分な行をさらに読み取ります。 構文上
エラーが発生した場合、シェルはそれ以上コマンドを読み取ったり実行したりしません。

トークン   キーワード
コマンドは XNUMX つ以上のトークンで構成されます。 シェル構文では、 トークン という言葉です
コマンドの一部です。 通常、トークンは空白、つまりスペースまたは
タブ文字。 コマンド置換またはパラメータ展開内の空白、
ただし、トークンを分離しないでください。

次の記号はシェル構文で特別な意味を持ち、ほとんどの場合は別々の意味を持ちます。
トークン:

; & | < > ( ) [改行]

次の記号はトークンを分離しませんが、構文上の意味を持っています。

$ ` \ " ' * ? [ # ~ = %

次のトークンは次のように扱われます。 キーワード それらが置かれている文脈に応じて、
現れる:

! { } case do 完了 elif else esac fi
関数の場合 if in then until while

トークンは、次の場合にキーワードとして扱われます。

· コマンドの最初のトークンです。

· 別のキーワードの後に​​続きます(ただし、 場合, , in)、または

· これはコマンドの最初ではないトークンであり、コマンドを構成するキーワードであると想定されています。
複合コマンド。

トークンが次で始まる場合 #、 そうして # および末尾までの次の文字
行は次のように扱われます コメント、構文解析では完全に無視されます。

名言集
空白、区切り文字、または上記のキーワードを処理したい場合
通常の文字と同様に、適切な引用符を使用して文字を引用する必要があります。
引用符は、それ自体が引用されない限り、通常の文字として扱われません。
次の XNUMX つの引用符を使用できます。

· バックスラッシュ (\) は直後の文字を引用します。

バックスラッシュに関する唯一の例外は、バックスラッシュの後にバックスラッシュが続く場合です。
改行。 この場合、XNUMX つの文字は XNUMX つの文字として扱われます。 ライン 継続 むしろ
改行が引用されるよりも。 XNUMX つの文字は入力から削除され、XNUMX つの文字は
継続行を囲む行は XNUMX 行に連結されます。

· 一対の一重引用符 (') 他の文字を除く、それらの間の文字を引用符で囲みます。
一重引用符。 改行は単一引用符を使用して引用できることに注意してください。

· 二重引用符 (") は単一引用符に似ていますが、いくつかの例外があります。
パラメータ展開、コマンド置換、算術展開は次のように解釈されます。
二重引用符の間でも通常通りです。 二重引用符の間のバックスラッシュが処理されます
後に続く場合にのみ引用符として使用します。 $, `, ", \、または改行。 他の
バックスラッシュは通常の文字として扱われます。

エイリアス
コマンドを構成するトークンは以下の対象となります。 alias 置換。 一致するトークン
すでに定義されている別名の名前は、別名の値に置き換えられます。
コマンドが解析される前。

引用符を含むトークンは、エイリアス名で置換できないため、エイリアスで置換されません。
引用符が含まれています。 キーワードとコマンド区切り文字は使用できません。
エイリアス置換のいずれかです。

エイリアスには、通常のエイリアスとグローバル エイリアスの XNUMX 種類があります。 あ 通常の alias しかできない
コマンドの最初のトークンを置き換えます。 全体的な alias の任意の部分を置き換えることができます
指示。 グローバル エイリアスは、POSIX で定義されていない yash 拡張子です。

トークンが、で終わる通常のエイリアスの値でエイリアス置換される場合、
空白の場合、次のトークンは例外的に通常のトークンのエイリアス置換の対象になります。
エイリアス。

エイリアス置換の結果は、再び他のエイリアス置換の対象になります。
エイリアス (ただし、すでに適用されているエイリアスは対象外)。

alias ビルトインを使用してエイリアスを定義し、unalias ビルトインを使用して削除できます。

簡単な拡張で コマンド
キーワード トークンで始まらないコマンドは、 シンプルな command。 簡単なコマンド
単純なコマンドの実行で定義されているように実行されます。

単純なコマンドの最初のトークンとそれに続く任意の数のトークンの形式が次の場合
=、変数の代入として解釈されます。 変数名は次のもので構成されている必要があります
XNUMX つ以上のアルファベット、数字、および/または下線 (_) 数字で始めることはできません。 の
変数割り当てではない最初のトークンはコマンド名とみなされ、すべてのトークンがコマンド名とみなされます。
次のトークン (形式があるかどうかは関係ありません) =) をコマンド引数として使用します。

次の形式の変数代入 VAR=(トークン) 配列への代入として解釈されます。
括弧の間に任意の数のトークンを記述することができます。 トークンは分離可能
スペースやタブだけでなく、改行も使用できます。

パイプライン
A パイプライン XNUMX つ以上の単純なコマンド、複合コマンド、および/またはのシーケンスです。
で区切られた関数定義 |.

複数のサブコマンドを持つパイプラインは、次の各サブコマンドを実行することによって実行されます。
サブシェル内のパイプラインを同時に実行します。 を除く各サブコマンドの標準出力
最後のサブコマンドは、次のサブコマンドの標準入力にリダイレクトされます。 標準
最初のサブコマンドの入力と最後のサブコマンドの標準出力は一致しません。
リダイレクトされました。 パイプラインの終了ステータスは、最後のサブコマンドの終了ステータスです。

パイプラインには接頭辞を付けることができます !この場合、パイプラインの終了ステータスは次のようになります。
逆転: パイプラインの終了ステータスは、最後のサブコマンドの終了ステータスが 1 の場合は 0、0 の場合は XNUMX になります。
さもないと。

注意
パイプラインの実行が終了すると、少なくとも最後のパイプラインの実行が
最後のサブコマンドの終了ステータスがサブコマンドの終了ステータスを定義しているため、サブコマンドは終了しました。
パイプライン全体。 ただし、他のサブコマンドの実行は完了していない可能性があります。
それから。 一方で、パイプラインの実行はその後すぐに終了しない場合があります。
シェルは実行を待つことを選択する可能性があるため、終了した最後のサブコマンドの
他のサブコマンドを終了します。

注意
POSIX 標準では、現在のシェルでサブコマンドを実行することはできません。
サブシェルよりも優れていますが、yash はそうしません。

そして/または lists
An および リスト で区切られた XNUMX つ以上のパイプラインのシーケンスです。 && or ||.

and/またはリストは、一部のパイプラインを条件付きで実行することによって実行されます。 最初
パイプラインは常に実行されます。 他のパイプラインは実行されるか実行されないかのどちらかです
前のパイプラインの終了ステータスに応じて。

· XNUMX つのパイプラインが次の方法で分離されている場合 && 最初のパイプラインの終了ステータスは次のとおりです。
XNUMX の場合、XNUMX 番目のパイプラインが実行されます。

· XNUMX つのパイプラインが次の方法で分離されている場合 || 最初のパイプラインの終了ステータスは
XNUMX の場合、XNUMX 番目のパイプラインが実行されます。

· その他の場合、 および/またはリストの実行は終了します: XNUMX 番目と残りのいずれか
パイプラインは実行されません。

および/またはリストの終了ステータスは、最後に実行されたパイプラインの終了ステータスです。

通常、and/またはリストはセミコロン、アンパサンド、または改行で終了する必要があります。 見る
コマンド区切り文字と非同期コマンド。

Command 区切り記号   非同期 コマンド
シェルへの入力全体は、任意の数の および/またはリストで区切られて構成されている必要があります。
セミコロンまたはアンパサンド。 終了セミコロンが続く場合は省略できます。 ;;, ),
または改行。 それ以外の場合、and/またはリストはセミコロンまたはアンパサンドで終了する必要があります。

and/またはリストがセミコロンで終了している場合、それは同期的に実行されます: シェル
次のおよび/またはリストを実行する前に、および/またはリストが終了するのを待ちます。 および/または
リストはアンパサンドで終了し、非同期で実行されます。
および/またはリストが開始されると、次のおよび/またはリストがすぐに実行されます。 非同期
および/または list は常にサブシェルで実行され、その終了ステータスは XNUMX です。

シェルがジョブ制御を行っていない場合、非同期および/またはリストの標準入力
は自動的に /dev/null にリダイレクトされます。 および/またはリストのシグナルハンドラー
SIGINT および SIGQUIT 信号は信号を「無視」するように設定されているため、
および/またはリストは、これらの信号によって停止することはできません。 (POSIXly 正しいモードでは、標準
入力は、ジョブかどうかに関係なく、シェルが対話型である場合にのみリダイレクトされます。
コントロールがオンになっています。 また、SIGINT および SIGQUIT シグナルは、ジョブ制御が無効であっても無視されます。
オン。)

非同期やリストの実行が開始されると、シェルはその内容を記憶します。
プロセスID。 ID は、 ! 特別なパラメータ。 入手できます
ジョブと待機を使用して、非同期リストの現在ステータスと終了ステータスを確認します。
内蔵。

コマンド
複合コマンドを使用すると、シェル コマンドの実行をプログラムで制御できます。

グループ化
グループ化は、単純なコマンドとして扱われるコマンドのリストです。

通常のグループ化構文
{ command...; }

サブシェルのグループ化構文
( command...)

当学校区の {   } トークンはキーワードであり、他のトークンから分離する必要があります。 の (  
) ただし、トークンは特別な区切り記号であり、分離する必要はありません。

通常のグループ化構文では、グループ化内のコマンドは現在の形式で実行されます。
シェル。 サブシェル グループ化構文では、コマンドは新しいサブシェルで実行されます。

POSIX 的に正しいモードでは、グループに少なくとも XNUMX つのコマンドが含まれている必要があります。 もし
シェルが POSIX 的に正しいモードではないため、グループにコマンドが含まれていない可能性があります。

グループの終了ステータスは、グループ内の最後のコマンドの終了ステータスです。 もし
グループ化にはコマンドが含まれていません。その終了ステータスは最後に実行されたコマンドの終了ステータスです。
グループ分けの前に。

If command
if コマンドは条件分岐を実行します。

基本的な if コマンド構文
if 条件...; その後 ボディ...; fi

else 句を使用した構文
if 条件...; その後 ボディ...; ほかに ボディ...; fi

elif 句を使用した構文
if 条件...; その後 ボディ...; elif 条件...; その後 ボディ...; fi

elif 句を使用した構文
if 条件...; その後 ボディ...; elif 条件...; その後 ボディ...; ほかに ボディ...; fi

すべての構文で、if コマンドの実行は、
条件 に続くコマンド if トークン。 条件の終了ステータスが
コマンドがゼロの場合、条件は「true」とみなされます。 この場合、 ボディ
に続くコマンド その後 トークンが実行され、if コマンドが実行される
終わります。 条件コマンドの終了ステータスがゼロ以外の場合、条件は次のようになります。
「偽」とみなされます。 この場合、 条件 次の elif 節のコマンド
が実行され、上記と同じ方法で終了ステータスがテストされます。 ない場合
elif 節、 ボディ に続くコマンド ほかに トークンが実行され、
ifコマンドの実行が終了します。 else 句も存在しない場合、実行は
if コマンドが終了するだけです。

if コマンドには複数の elif-then 節を含めることができます。

if コマンドの終了ステータスは、 ボディ 実行されたコマンド。 の
いいえの場合、終了ステータスはゼロです ボディ コマンドが実行された、つまりすべての条件が満たされた
は false であり、else 節はありませんでした。

一方、   まで loops
while ループと until ループは、条件付きの単純なループです。

While ループ構文
while 条件...; do ボディ...; 行われ

までループ構文
まで 条件...; do ボディ...; 行われ

シェルが POSIX 的に正しいモードでない場合は、 条件 および
ボディ while/until ループのコマンド。

while ループの実行は、次のコマンドを実行することによって開始されます。 条件 コマンド。 の場合
の終了ステータス 条件 コマンドがゼロの場合、シェルは ボディ コマンド
そして、の実行に戻ります。 条件 コマンド。 NS 条件   ボディ
コマンドは終了ステータスになるまで繰り返し実行されます。 条件 コマンドは
ゼロではない。

注意
当学校区の ボディ コマンドを最初に実行した場合、コマンドはまったく実行されません。 条件
コマンドはゼロ以外の終了ステータスを生成します。

until ループは while ループと同じ方法で実行されますが、条件が異なります。
ループを繰り返すには逆になります。 ボディ コマンドは、終了ステータスが次の場合に実行されます。
  条件 コマンドはゼロ以外です。

while/until ループの終了ステータスは、最後に実行されたものになります。 ボディ コマンド。 の
終了ステータスはゼロです。 ボディ コマンドが空であるか、まったく実行されませんでした。

ループ
for ループは、各コマンドで指定された値の XNUMX つが割り当てられた変数を使用してコマンドを繰り返します。
円形。

for ループ構文
変数名 in 単語...; do command...; 終わった 変数名 do command...; 行われ

当学校区の 単語 後のリスト in トークンは空でもかまいませんが、その前のセミコロン (または改行)
  do その場合でもトークンは必要です。 の 単語はキーワードとして扱われませんが、
区切り文字を引用符で囲む必要があります (例: &   |) の一部として含めます。
単語。 を省略した場合、 in トークンと以下 単語s も省略する必要があります。
の前にセミコロン do トークン。 ただし、シェルはこれについて文句を言いません。
POSIX 的に正しいモードでない場合は、セミコロンが存在します。 の command リストはかもしれない
POSIX 的に正しいモードでない場合は空。

当学校区の 変数名 POSIX 的に正しいモードのポータブル (ASCII のみ) 名である必要があります。

for ループの実行は、 単語と同じ方法で
単純なコマンドの実行。 もし in   単語 トークンは省略され、シェルは
を前提としています 単語 トークン 「$ @」。 次に、各単語に対して次の手順が実行されます。
展開された (単語が展開された順序で):

1. という名前の変数に単語を代入します。 変数名.

2. を実行します。 commands.

POSIXly 正しいモードを除き、各単語はローカル変数として割り当てられます。 もし
の拡大 単語結果として何も言葉が出なかったが、 commandは実行されません
すべて。

for ループの終了ステータスは、最後に実行されたものです。 command。 終了ステータスは、
ゼロの場合 commandは空ではなく、まったく実行されません。 もし commandは空です、
終了ステータスは、for ループの前に最後に実行されたコマンドのステータスです。

シミュレーション例 command
case コマンドはパターン マッチングを実行して、実行するコマンドを選択します。

Case コマンド構文
場合 単語 in ケースアイテム... ESAC

ケース項目の構文
(パターン) command...;;

当学校区の 単語 間に 場合   in トークンは正確に XNUMX つの単語である必要があります。 の 単語 ではありません
キーワードとして扱われますが、区切り文字を引用符で囲む必要があります (例: &   |)へ
の一部としてそれらを含めます 単語。 間に in   ESAC 任意のトークンを置くことができます
ケース項目の数 (ない場合もあります)。 最初のものは省略できます ( ケースアイテムのトークンと
最後 ;; の前のトークン ESAC トークン。 最後だったら command ケースアイテムの
セミコロンで終了する場合は、セミコロンを省略することもできます。 の commandケースに入っています
項目が空の場合があります。

当学校区の パターン ケース項目の場合、それぞれが で区切られた XNUMX つ以上のトークンです。 | トークン。

case コマンドの実行は、 単語 四人に
拡張。 次に、案件項目ごとに以下の手順を実行します(順に)。
外観):

1. の各単語について パターンと同じ方法で単語を展開します。 単語  
展開されたパターンが展開された単語と一致するかどうかをテストします。 (パターンが見つかった場合
単語に一致する場合、残りのパターンは展開もテストも行われないため、
パターン 拡張できない場合があります。 Yash は、パターンを拡張してテストします。
出現順ですが、他のシェルには当てはまらない場合があります。)

2. 次のいずれかの場合、 パターン と一致することが判明した 単語 前のステップで、
commandこの場合、アイテムが実行され、ケースアイテム全体が実行されます。
終わります。 それ以外の場合は、次のケース項目に進みます。

case コマンドの終了ステータスは、 command実行されました。 終了ステータスは、
いいえの場合はゼロ commandが実行されました。つまり、ケース項目や一致するものがありませんでした。
パターンが見つかったか、一致するパターンに関連付けられたコマンドがありませんでした。

POSIXly-correct モードでは、ケース項目の最初のパターンを使用できません。 ESAC (たとえ
省略しないでください ( トークン)。

演算 定義
関数定義コマンドは関数を定義します。

関数定義の構文
関数名 ( ) 複合コマンドfunction 関数名 複合コマンドfunction 関数名 ( )
複合コマンド

最初の構文では、 function キーワード、 関数名 特別なものを含めることはできません
セミコロンや引用符などの文字。 XNUMX 番目と XNUMX 番目の構文では、
POSIX 的に正しいモードでは使用できません。 関数名 XNUMXつの拡張を受ける
実行されると。 POSIX 的に正しいモードでは、 関数名 ポータブル (ASCII のみ) に限定されます
名前。

関数定義コマンドを実行すると、関数名が 関数名 is
本体を使って定義される 複合コマンド.

関数定義コマンドを直接リダイレクトすることはできません。 後続のリダイレクト
関数定義が関連付けられている 複合コマンド 関数全体ではなく
定義コマンド。 で func() { 猫; } > / dev / nullたとえば、そうではありません。 func() { 猫; }
焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。 { 猫; } それはリダイレクトされます。

関数が何も指定せずに定義された場合、関数定義の終了ステータスは XNUMX になります。
エラー、それ以外の場合はゼロ以外。

パラメーター そして 変数


技術パラメータ パラメータ展開で展開される文字列値です。 XNUMXつあります
パラメータのタイプ: 位置パラメータ、特殊パラメータおよび変数。

定位置 パラメータ
定位置 パラメータ 自然数で識別されるパラメータです。 あれば
たとえば、XNUMX つの位置パラメータは次のように識別されます。 1, 2, 3。 あなたができる
次の方法で位置パラメータの数を取得します。 # 特別なパラメータ。 の *   @ 特別
パラメータはすべての位置パラメータに展開されます。

位置パラメータは、シェルのコマンドライン引数から初期化されます。
シェルが開始されます (コマンドライン引数を参照)。 初期化時の順序は、
オペランドは位置パラメータの順序として保持されます。

シェルが関数呼び出しを実行すると、位置パラメータは次のように変更されます。
関数呼び出しへの引数。これにより、関数の実行中に引数にアクセスできるようになります。
処刑されている。 位置パラメータは、
関数の実行が終了しました。

位置パラメータは、set や shift などの組み込みコマンドで操作できます。

注意してください 0 は位置パラメータではなく、特殊なパラメータです。

Special パラメータ
Special パラメータ パラメータはそれぞれ単一の記号で識別されます。 それらはあり得ません
ユーザーによって直接割り当てられます。

Yash は次の特別なパラメータを提供します。

0
で指定されたシェル実行可能ファイルまたはスクリプト ファイルの名前。
シェルの呼び出し。

#
現在の位置パラメータの数。 値は負ではない整数です。

$
シェルのプロセス ID。 値は正の整数であり、たとえ
サブシェルで。

-
現在有効なシェル オプション。 値はアルファベット文字を連結したものです
現在有効になっており、指定できる XNUMX 文字のオプションの名前です。
シェル呼び出しで。 値は、有効にするか、または
set 組み込みを使用してオプションを無効にします。

?
最後に実行されたパイプラインの終了ステータス。 値は負ではない整数です。

!
最後に実行された非同期リストのプロセス ID。

*
この特別なパラメータは、位置パラメータ全体を表します。 無いときは
位置パラメータの場合、この特別なパラメータの値は空の文字列です。 いつ
複数の位置パラメータがある場合、値はすべての位置パラメータを連結したものになります。
位置パラメータ。それぞれは次のように区切られます。

・もし IFS 変数が存在し、その値が空ではない場合、位置パラメータは
それぞれが値の最初の文字で区切られています。 IFS 変数に保存します.

・もし IFS 変数が存在し、値が空である場合、位置パラメータは単なる
区切り文字なしで連結されます。

・もし IFS 変数が存在しません。位置パラメータはそれぞれ
スペース文字。

@
この特別なパラメータは、次のような位置パラメータ全体を表します。 * 特別
上記のパラメータ。 両者の違いは拡張の結果です。
は二重引用符のペアの間に発生します。 もし @ 特別なパラメータは
二重引用符内で展開されると、位置パラメータはフィールド分割ではなくフィールド分割されます。
(引用にもかかわらず)連結されています。 位置パラメータがない場合、
展開すると空の単語ではなく単語が生成されません。

· 位置パラメータがない場合、コマンドワード echo 1 「$ @」 2 is
XNUMXつの単語に拡張 echo, 1, 2.

・位置パラメータがXNUMXワードの場合 1, 2 2, 3、命令語
echo 「$ @」 XNUMXつの単語に展開されます echo, 1, 2 2, 3、そして言葉 echo
「a$@b」 XNUMXつの言葉に echo, a1, 2 2, 3b.

変数
変数 ユーザーが値を割り当てることができるパラメータです。 各変数には次のような名前が付いています。
それと展開の結果を定義する値を識別します。

変数名は XNUMX つ以上の英数字とアンダースコア (_)。 ザ·
名前を数字で始めることはできません。 状況に応じて、名前に他の文字が使用される場合があります。
環境の国際化サポート。

外部コマンドにエクスポートされる変数は と呼ばれます。 環境 variables。 彼ら
シェルが呼び出すすべての外部コマンドに渡されます。 シェルに渡される変数
呼び出しは自動的にエクスポートされます。

組込みタイプセットだけでなく、簡単なコマンドでも変数に代入できます。 あなたはできる
unset 組み込みを使用して変数を削除します。

変数 中古 by   shell
次の変数は、特別な目的でシェルによって使用されます。

CDPATH
この変数は、cd 組み込みによって宛先ディレクトリを検索するために使用されます。

COLUMNS
この変数は、文字列の幅 (文字列の数) を指定します。
ターミナル画面。 この値は行編集の表示に影響します。

COMMAND_NOT_FOUND_HANDLER
シェルが実行するコマンドを見つけられない場合、この変数の値は次のようになります。
代わりに解釈されて実行されます。 シェルのエラー処理をオーバーライドできます。
この変数を使用した動作。 詳細については、「単純なコマンドの実行」を参照してください。

この機能は、POSIXly-correct モードでは無効になります。

ダースタック
この配列変数は、ディレクトリ スタックの内容を格納するためにシェルによって使用されます。 もし
この変数の値を変更すると、ディレクトリ スタックが破損する可能性があります。

エコースタイル
この変数は、エコー組み込みの動作を指定します。

ENV
対話型シェルが POSIX 的に正しいモードで開始される場合、次の値は
この変数は、初期化ファイルを見つけるために使用されます。 「yash の初期化」を参照してください。

FC編集
この変数は、実行中にコマンド ラインを編集するために使用されるエディタ プログラムを指定します。
fc 組み込みの実行。

ハンドリング
この変数を command-not-found ハンドラーに設定して、シェルにコマンドを実行しないように指示できます。
さらにエラーメッセージが生成されます。 詳細については、「単純なコマンドの実行」を参照してください。

ヒストファイル
この変数は、コマンド履歴を保存するファイルのパス名を指定します。

ヒストラムダップ
この変数は、チェックするコマンド履歴項目の数を指定します。
複製。 シェルがコマンド履歴に新しい履歴項目を追加するとき、
最新のものがあれば n アイテムが新しいものと同じ内容である場合、
重複する既存のアイテムは、新しいアイテムが追加される前に履歴から削除されます。
コラボレー n この変数の値です。

この変数の値が 1たとえば、最新の項目が削除されます。
同じ内容の新しい項目が追加されたとき。

より古いアイテム n最近のアイテムは削除されません。 次の場合、項目は削除されません。
この変数の値は 0。 変数が次の場合、すべての項目が削除の対象となります。
値は、の値以上です 履歴サイズ 変数に保存します.

履歴サイズ
この変数は、コマンド履歴内の項目の最大数を指定します。

ホーム
この変数はユーザーのホーム ディレクトリのパス名を指定し、
チルダ展開と cd 組み込みの結果。

IFS
この変数は、フィールド分割で使用される区切り文字を指定します。 変数の値は
スペース、タブ、改行の XNUMX 文字に初期化されます。
シェルが起動されます。

言語, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME
これらの変数は、シェルが実行されるロケールを指定します。 シェルが選択するのは、
ファイルの入出力エンコーディング、エラー メッセージの言語などは、
ロケールが指定されています。

シェルが対話型であり、POSIX 的に正しいモードでない限り、次の値は
  LC_CTYPE 変数はシェルの起動時にのみ考慮されます。 シェルが完成したら
が初期化され、値が変更されました LC_CTYPE には影響はありません
シェルの動作。

リネノ
この変数の値は、行番号に自動的に設定されます。
現在実行されているコマンドがファイルに表示されます。

対話型シェルでは、シェルが読み取るたびに行番号が 1 にリセットされます。
そしてコマンドを実行します。

この変数に代入または削除すると、行番号は提供されなくなります。

LINES
この変数はターミナルの高さ(文字行数)を指定します。
画面。 この値は行編集の表示に影響します。

MAIL
この変数は、メールチェックでチェックされるファイルのパス名を指定します。

メールチェック
この変数は、シェルがメール チェックを行う頻度を指定します。 値は
秒単位の正の整数として指定します。 値は次のように初期化されます。
のデフォルト値 600 シェルの起動時。

メールパス
この変数は、メールチェックでチェックされるファイルのパス名を指定します。

NLSパス
POSIX 標準では、この変数の値でパス名を指定することが規定されています
ロケール依存のメッセージ データ ファイルのテンプレートがありますが、yash はそれを使用しません。

OLDPWD
この変数は、
cd またはその他の組み込み機能を使用して、作業ディレクトリを作成します。 この変数は次によってエクスポートされます。
デフォルト。

オプターグ
getopts 組み込み関数が引数を取るオプションを解析するとき、引数は
値がこの変数に割り当てられます。

最適化
この変数の値は、解析されるオプションのインデックスを指定します。
次の getopts 組み込み実行によって。 この変数は次のように初期化されます 1
シェルが起動されます。

パス
この変数は、コマンド検索でコマンドを検索するパスを指定します。

PPID
この変数の値は、シェルの親プロセスのプロセス ID です。
は正の整数です。 この変数はシェルの起動時に初期化されます。 の
シェルが新しいサブシェルを作成するときに値は変更されません。

プロンプト_コマンド
シェルは、各変数を出力する前に、この変数の値を解釈して実行します。
シェルが対話型で、POSIX 的に正しいモードではない場合は、コマンド プロンプト。
この動作は、コマンドを実行するのと同じです。 評価する -i --
「${PROMPT_COMMAND-}」 各コマンド プロンプトの前に実行されますが、終了ステータスは変化しません。
の拡大に影響を与える ? 次のコマンドの特別なパラメータ。

PS1
この変数は、対話型コマンドによって出力されるメインのコマンド プロンプト文字列を指定します。
シェル。 変数値の形式については、「プロンプト」を参照してください。 値が初期化される
〜へ \$ シェルの起動時。 (POSIXly-correct モードでは、初期値は
どちらかです $ or # シェルプロセスの実効ユーザーIDかどうかに応じて
ゼロかそうでないか)

PS1R
この変数は、プロンプト文字列の右側に出力される補助プロンプト文字列を指定します。
対話型シェルにコマンドラインを入力するときのカーソル。 プロンプトを参照してください。
変数値の形式。

PS1S
この変数は、コマンドに入力するコマンド文字列のフォント スタイルを指定します。
インタラクティブシェル。 変数値の形式については、「プロンプト」を参照してください。

PS2
この変数は次のようなものです PS1 変数ですが、XNUMX 番目と XNUMX 番目に使用されます。
XNUMX 行より長いコマンドの次の行。 プロンプトを参照してください。
変数値の形式。 値は次のように初期化されます > シェルが
開始しました。

PS2R
この変数は次のようなものです PS1R 変数ですが、次の場合に使用されます。 PS2 使用されている。 見る
変数値の形式を入力するよう求められます。

PS2S
この変数は次のようなものです PS1S 変数ですが、次の場合に使用されます。 PS2 使用されている。 見る
変数値の形式を入力するよう求められます。

PS4
この変数の値は、各コマンド トレース出力の前に出力されます。
xtrace オプションが有効になっています。 値はパラメータ展開の対象になります。コマンド
置換、算術展開。 場合はバックスラッシュ表記も使用できます。
シェルは POSIX 的に正しいモードではありません。 値は次のように初期化されます +
シェルが起動されます。

PS4S
この変数は次のようなものです PS1S 変数ですが、次の場合に使用されます。 PS4 使用されている。 あなたはできる
この変数を使用して、コマンド トレース出力のフォント スタイルを変更します。

PWD
この変数の値は、現在の作業ディレクトリのパス名です。 の
値はシェルの起動時に設定され、作業ディレクトリが起動されるたびにリセットされます。
CD またはその他の組み込みによって変更されます。 この変数はデフォルトでエクスポートされます。

RANDOM
この変数を使用して乱数を取得できます。 この変数の値は、
0 から 32767 (両端を含む) までの均一に分散されたランダムな整数。 あなたは得ます
変数が展開されるたびに異なる数値になります。

負でない整数を割り当てることで、乱数の「シード」を設定できます。
変数。

この変数を削除すると、乱数生成器として機能しなくなります。
シェルが POSIX 的に正しいモードで呼び出された場合、この変数は機能しません。
乱数発生器として。

TERM
この変数は、シェルが実行されている端末のタイプを指定します。
この値は行編集の動作に影響します。

YASH_AFTER_CD
シェルは、毎回の実行後にこの変数の値を解釈して実行します。
シェルの作業ディレクトリは、cd またはその他の組み込みによって変更されます。 この動作
コマンドを実行するのと同じです 評価する -i -- 「${YASH_AFTER_CD-}」 後に
ディレクトリが変更されました。

YASH_LOADPATH
この変数は、ドット組み込みがスクリプト ファイルを検索するディレクトリを指定します。
複数のディレクトリを指定するには、次のようにコロンで区切ります。
パス 変数。 シェルが開始されると、この変数は次のように初期化されます。
共通スクリプト ファイルがインストールされるディレクトリのパス名。

YASH_LE_TIMEOUT
この変数は、シェルが次に考えられる入力を待つ時間を指定します。
あいまいな制御シーケンスに遭遇したときに端末から
行編集。 値はミリ秒単位で指定する必要があります。 定義しない場合
この変数では、デフォルト値の 100 ミリ秒が想定されます。

YASH_VERSION
値は、シェルが次の場合にシェルのバージョン番号に初期化されます。
開始しました。

配列
An 配列 XNUMX 個以上の文字列を含む変数です。 の文字列値
配列は自然数 (位置パラメータと同様) によって識別されます。

配列だけでなく、簡単なコマンドを使用して配列に値を割り当てることができます。
内蔵。 unset 組み込みを使用して配列を削除できます。

配列を配列としてエクスポートすることはできません。 配列がエクスポートされると、配列は
それぞれが分離されたすべての配列値を連結した値を持つ通常の変数
コロンによって。

配列は、POSIXly 正しいモードではサポートされません。

WORD 拡張


Word 拡大 単語の一部を別の特定の文字列に置き換えることです。 がある
XNUMX 種類の単語展開:

1. チルダ展開

2. パラメータの拡張

3. コマンド置換

4. 算術展開

5. ブレースの拡張

6. フィールド分割

7. パス名の展開 (グロビング)

これらのタイプの展開は、上で指定した順序で実行されます。

チルダ展開、パラメータ展開、コマンド置換、算術展開は、
呼ばれます 4 拡張.

チルダ 拡大
In チルダ 拡大, チルダで始まる単語の一部 (~) は次のように置き換えられます。
特定のパス名。 置換される各単語の部分は、
最初のスラッシュ ( を除く) までの単語 (チルダ)/)という言葉で。 もし
単語にスラッシュが含まれていない場合は、単語全体が置換されます。 のいずれかの文字があれば、
置換部分が引用符で囲まれている場合、単語に対してチルダ展開は実行されません。

展開の結果は、置換された部分の形式によって決まります。

~
単一のチルダが次の値に置き換えられます。 ホーム 変数に保存します.

~ユーザ名
ユーザー名に続くチルダは、ユーザーのホームのパス名に置き換えられます。
ディレクトリにあります。

~+
~+ の値に置き換えられます。 PWD 変数に保存します.

~-
~- の値に置き換えられます。 OLDPWD 変数に保存します.

~+n, ~-n
コラボレー n は負ではない整数です。 このタイプのチルダ展開では、次のパス名が生成されます。
そのディレクトリ ~+n or ~-n ディレクトリスタック内のインデックスです。

途中で発生する変数代入の値に対してチルダ展開が実行されるとき
単純なコマンドを実行すると、値はコロンで区切られた単語のリストとみなされます。
これらの単語はそれぞれチルダ展開の対象となります。 たとえば、変数の代入

VAR=~/a:~/b:~/c

に相当します

VAR=/ホーム/foo/a:/ホーム/foo/b:/ホーム/foo/c

の値が ホーム 変数は /ホーム/フー.

POSIX 標準では、シェルが次のようなエラーに遭遇したときにどのように動作するかを規定していません。
チルダ展開中のエラー (例: ホーム 変数が定義されていません)。 ヤシュは黙って
チルダ展開中のエラーを無視します。 置換される単語の部分
そのまま残されています。

POSIXly-correct モードでは、チルダ展開は次の形式をサポートします。 ~   ~ユーザ名 のみ。

拡大
拡大 パラメータの値に展開されます。

一般的な単純なパラメータ展開の構文は次のとおりです。 ${パラメーター}に展開されます。
という名前のパラメータの値 パラメーター。 中括弧は省略できます (例: $パラメーター)
if

· パラメーター は特別なパラメータです。

· パラメーター インデックスが XNUMX 桁の整数である位置パラメータ、または

· パラメーター は変数であり、パラメータ展開の後に文字が続きません。
変数名の一部として使用できます。 例えば、 ${パス}-名前 同等です
〜へ $パス名、 だけど ${パス}名   $パス名 異なっています。

If パラメーター 特殊パラメータ、位置パラメータ、変数のいずれでもない、
構文エラー。 (yash 以外の一部のシェルでは、このような場合は展開エラーとして扱われる場合があります。)

unset オプションが無効になっている場合、 パラメーター は未定義の変数です。
拡張エラー。 unset オプションが有効な場合、未定義の変数は
空の文字列。

パラメータ展開のより複雑な構文を使用すると、パラメータの値を変更できます。

パラメータの拡張
${ 接頭辞 パラメーター index 修飾子 }

上記の構文定義内のスペースは読みやすくするためのものであり、省略する必要があります。
省略できます 接頭辞, index、および/または 修飾子.

接頭辞
当学校区の 接頭辞存在する場合、ハッシュ記号 (#)。 パラメータ展開に接頭辞がある場合、
展開の結果は、この展開によって得られる値の文字数です。
プレフィックスなしで に展開されます。


パラメータ名 (パラメーター) のいずれかである必要があります

· 特殊パラメータ、位置パラメータ、または変数の名前。 または

· 別のパラメータ拡張、コマンド置換、または算術拡張。

パラメータ展開は、 パラメーター。 場合 パラメーター あります
配列変数の場合、配列の値は次のようにフィールド分割されます。 @ 特別なパラメータ
インデックスがない限り [*] 指定されています。

If パラメーター は別の拡張であり、 入れ子になりました 拡大。 入れ子の拡張
POSIXly 正しいモードでは使用できません。 中かっこ ({ }) ネストされたパラメータの
展開は省略できません。
Index.sp An index パラメーター値の一部 (または配列値の一部) を抽出できます。

目次
[word1]

[word1,word2]

コラボレー word1   word2 異なる点を除いて、通常のトークンと同じ方法で解析されます。
常に次によって区切られます , or ] 空白文字を含めることもできます。

あれば index パラメータ展開では、次のように解釈されます。

1.言葉 word1   word2 パラメータ拡張、コマンド置換、および
算術展開。

2. ない場合 word2 そして word1 のいずれかに展開されます *, @, #、それなら、
の解釈 index そして次のステップは取られません。

3. 前の手順の結果 (展開された word1   word2) が解釈され、
算術展開と同じ方法で算術式として評価されます。
結果の整数は次のように解釈されます。 index。 結果がでない場合
整数の場合、展開エラーです。 ない場合 word2、と仮定されます word2 is
に等しい word1.

If パラメーター は配列変数です。 index 配列の一部を指定します。 もし パラメーター
のいずれかです * or @ 特別なパラメータ、 index 位置のインデックス範囲を指定します
パラメーター。 他の場合には、 index の部分文字列のインデックス範囲を指定します。
展開されるパラメータ値。 すべての場合において、配列の指定された範囲
値、位置パラメータ、またはパラメータ値は展開の結果に残ります。
他の値は削除されます。

の解釈であれば、 index が XNUMX または XNUMX の整数の場合、次のルールが適用されます。

· 解釈されたインデックス値が負の場合、 ラップ 周りに。 たとえば、インデックス
値 -1 は最後の値/文字に対応します。

・インデックス値が範囲外の場合はエラーではありません。 既存の値/文字
範囲内のものが選択されただけです。

・どちらかの解釈の場合 word1 or word2 が 0 の場合、範囲は空とみなされ、
拡張しても何も生まれません。

の解釈であれば、 index の一つである *, @, #の場合、次のように扱われます。

*
If パラメーター 配列の場合、配列のすべての値が単一の値に連結されます。
弦。 もし パラメーター* or @ 特別なパラメータ、すべての位置パラメータは
文字列に連結されます。 の説明を参照してください。 * どのようにするかについての特別なパラメータ
値/位置パラメータは結果文字列内で分離されます。 他の場合には、
の解釈 index は、解釈が 1 つの整数 XNUMX と であるかのように扱われます。
-1。

@
の解釈 index 解釈が 1 つの整数 XNUMX であるかのように扱われます。
そして-1。

#
の解釈 #index は、単に指定するだけではないという点で特別です。
範囲。 代わりに、展開された値がカウントに置き換えられます。

If パラメーター が配列の場合、このパラメータ展開の結果は次の数になります。
展開される配列内の値。 もし パラメーター* or @ 特別なパラメータ、
結果は現在の位置パラメータの数になります。 それ以外の場合、結果は次のようになります。
展開される値の文字数になります。

パラメータ展開に index、であると想定されます [@]。 の中に
POSIX 的に正しいモード、 index 指定できません。

例: 1. 拡張 of a 通常の 変数

次のコマンドは文字列を出力します。 ABC:

var='123ABC789'
エコー「${var[4,6]}」

例: 2. 拡張 of ポジショナル パラメータ

次のコマンドは文字列を出力します。 2 3 4:

セット 1 2 3 4 5
エコー「${*[2,-2]}」

例: 3. 拡張 of an 配列

次のコマンドは文字列を出力します。 2 3 4:

配列=(1 2 3 4 5)
エコー「${配列[2,-2]}」

変更
次を使用して、展開される値を変更できます。 修飾子:

-単語
パラメータ名 (パラメーター) は未定義の変数です。パラメータは
拡張が拡張されます 単語。 オプションが設定されていない場合はエラーとして扱われません
無効になっています。

+単語
パラメータ名 (パラメーター) は既存の変数、パラメータ拡張
に拡張されます 単語。 unsetオプションが指定されている場合はエラーとして扱われません。
無効にする。

=単語
パラメータ名 (パラメーター) は未定義の変数です。 単語 に割り当てられています
変数とパラメータの展開は次のように展開されます。 単語。 として扱われない
unset オプションが無効な場合はエラー。

?単語
パラメータ名 (パラメーター) は未定義の変数です。 単語 として印刷されます
エラーメッセージを標準エラーに出力します。 もし 単語 は空です、デフォルトのエラーメッセージ
代わりに印刷されます。

:-単語, :+単語, :=単語, :?単語
これらは、上記の XNUMX 種類の修飾子に似ています。 唯一の違いは、
その場合、 パラメーター 存在し、値が空の場合は、
未定義の変数。

#単語
シェルは、展開される値に対してパターン マッチングを実行します。
単語 パターンとして。 もし 単語 値の先頭に一致する、一致する
部分は値から削除され、他の部分は展開結果として残ります。
複数のマッチングが可能な場合は、最も短いマッチングが使用されます。

##単語
これは #単語 その上。 唯一の違いは、最長一致であることです。
複数の一致が可能な場合に使用されます。

%単語
これは #単語 その上。 唯一の違いは、マッチングが試行されることです。
値の先頭ではなく末尾: if 単語 の終わりと一致します
値の場合、一致する部分が値から削除され、他の部分はそのまま残ります。
拡張結果。

%%単語
これは %単語 その上。 唯一の違いは、最長一致であることです。
複数の一致が可能な場合に使用されます。

/word1/word2
シェルは、展開される値に対してパターン マッチングを実行します。
word1 パターンとして。 もし word1 値の任意の部分と一致します。
部分が置き換えられます word2 置換後の全体の値は次のようになります。
拡張結果。 もし word1 値の複数の部分に一致しますが、
最初の部分が置き換えられます。 複数の場合、最も短い一致が置き換えられます。
値の同じ開始点に対してマッチングが可能です。

この修飾子は、POSIXly 正しいモードでは使用できません。

/#word1/word2
これは /word1/word2 その上。 唯一の違いは、 word1 マッチ
展開される値の先頭のみ。

/%word1/word2
これは /word1/word2 その上。 唯一の違いは、 word1 マッチ
展開される値の最後のみ。

//word1/word2
これは /word1/word2 その上。 唯一の違いは、すべてが一致していることです
部品が交換される場合 word1 値の複数の部分と一致します。

:/word1/word2
これは /word1/word2 その上。 唯一の違いは、値が
次の場合にのみ交換されます word1 全体の値と一致します。

上記のすべてのタイプの修飾子で、単語は次の場合に XNUMX つの展開を受けます (および
使用される場合のみ)。

If パラメーター 配列変数または @ or * 特別なパラメータ、修飾子が影響する
配列の各値またはすべての位置パラメータ。

Command 置換
Command 置換 指定されたコマンドの出力に展開されます。

コマンド置換
$(コマンド)

`コマンド`

コマンド置換が評価されると、 コマンド 出力付きのサブシェルによって実行されます
シェルにパイプライン化されます。 とき コマンド 終了、コマンド置換が置換されます
の出力で コマンド。 出力内の末尾の改行文字は次のようになります。
無視されます。

フォームのコマンド置換時 $(コマンド) 解析されると、 コマンド 解析される
ネストされたコマンド置換などの複雑なコマンドが解析されるように慎重に実行してください。
正しく。 場合 コマンド 皮切りに (、前にスペースを入れる必要があります コマンド そのため
コマンド全体の置換は算術展開と混同されません。 シェルが入っている場合
POSIXly-correctly モード、 コマンド コマンド置換が行われるたびに解析されます。
拡張されました。 さもないと、 コマンド コマンド置換が解析される場合にのみ解析されます。

コマンド置換が次の形式の場合 `コマンド` コマンド の場合は解析されません。
コマンド置換が解析されます。 の終わり コマンド 最初の逆引用符によって検出されます
キャラクター (`) の開始後 コマンド これはバックスラッシュで囲まれていません。
の一部である逆引用符 コマンド (通常はネストされたコマンドの置換に使用されます)
バックスラッシュで囲みます。 の コマンド コマンド置換が行われるたびに解析されます。
拡大しました。

算術 拡大
算術 拡大 算術式を評価し、次の値に展開します。
式です。

算術展開
$((表現))

算術展開を展開すると、 表現 パラメータ拡張の対象となり、
コマンド置換、および (ネストされた) 算術拡張。 の 表現 で解析されます
C言語の表現と(ほぼ)同じです。

Yash では、式を整数 (C の long 型) または整数のいずれかにすることができます。
浮動小数点数 (C の double 型)。 整数の演算により次の結果が得られます。
整数と浮動小数点数を含む演算により浮動小数点数が生成されます。
POSIXly-correct モードでは、整数のみを使用できます。

次の演算子を使用できます (優先順位順)。

1. ( )

2. ++-- (後置演算子)

3. ++--+-~! (接頭辞演算子)

4. * /%

5. +- (二項演算子)

6. << >>

7. <<=>>=

8. ==!=

9. &

10. ^

11. |

12. &&

13. ||

14. ? :

15. =*=/=%=+=-=<<=>>=&=^=|=

当学校区の ++   -- 演算子は POSIXly-correct モードでは使用できません。

アトミック式は、整数リテラル、浮動小数点数リテラル、
そして変数。 リテラルは C と同じ方法で解析されます。 XNUMX 進整数リテラル
で始まる 0、および XNUMX 進数 0x。 浮動小数点数リテラルには、
指数(つまり 1.23e + 6)。 数値以外の値を持つ変数は、次の場合にエラーになります。
数値として解析されます。

POSIXly-correct モードでは、変数は常に数値として解析されます。 それ以外の場合は変数
計算で数値として使用される場合にのみ解析されます。 解析されていない変数が残る
そのまま。

set +o 確実に正しい
foo = bar
echo $((0 ? foo : foo)) # "bar" を出力します
エコー $((foo + 0)) # エラー

ブレース 拡大
ブレース 拡大 前後の部分を含む複数の分割された単語に展開されます。
分割された各単語に複製されます。 中括弧の展開は、brace-expand の場合にのみ展開されます。
オプションは有効です。

カンマ区切りの中括弧の展開
{word1,word2、...、言葉}

範囲ブレースの拡張
{start..end}

{start..end..デルタ}

カンマ区切りの中括弧展開は、カンマ区切りの各単語に展開されます。 例えば、
a{1,2,3}b XNUMXつの単語に展開されます a1b, a2b, a3b.

範囲中括弧の展開は、次で定義された範囲内の整数に展開されます。 start   endを選択します。
各整数の差は次のように定義できます。 デルタ。 場合 start より大きい end
結果は降順になります。 いつ ..デルタ 省略した場合、デフォルトは 1 または -1 になります。 のために
例、 a{1..3}b XNUMXつの単語に展開されます a1b, a2b, a3b、および a{1..7..2}b から
XNUMXつの言葉 a1b, a3b, a5b, a7b.

XNUMX つの単語内で複数の中括弧展開を使用できます。 中括弧展開はネストすることもできます。
中括弧やコンマを引用符で囲んで、中括弧展開として扱われないようにすることができます。

中括弧展開のエラーはすべて無視されます。

フィールド 分裂
In フィールド 分裂、単語は事前に定義された区切り文字で分割されます。

フィールド分割は、パラメータから生じた単語の一部内でのみ発生します。
間にない展開、コマンド置換、算術展開
二重引用符。 の拡張結果 @ 特別なパラメータは例外的に
二重引用符の間でも分割します。

フィールド分割で使用される区切り文字は、 IFS 変数。 の場合
変数が存在しない場合、値はスペース、タブ、
そして改行。

の値に含まれる文字 IFS 変数が呼び出されます IFS 文字。 IFS
スペース、タブ、改行のいずれかの文字が呼び出されます。 IFS 空白 その他のIFS
キャラクターが呼ばれます IFS 非空白.

フィールド分割は次のように実行されます。

1. シェルは単語を検索して分割点を探します。 スプリットポイントは XNUMX つ以上の隣接する IFS です
フィールド分割の対象となる単語部分内の文字。 次の
見つかった分割ポイントごとにステップが実行されます。

2. スプリットポイントに XNUMX つ以上の IFS 非空白文字が含まれている場合、IFS 空白文字はすべて
分割点は無視され、単語は各 IFS 非空白文字で分割されます。
分岐点。

3. 分割点に IFS の非空白文字が含まれていない場合、単語は分割点で分割されます。
単語の先頭または末尾にない限り、ポイントを使用しません。

4. 分割ポイントは結果から削除されます。

注意
の値が次の場合、単語はまったく分割されません。 IFS 変数が空です。

パス名 拡大
パス名 拡大 パターンマッチングを実行し、一致するパス名に展開します。
パターン。

パス名展開された単語はパターンとして扱われます。 XNUMX つ以上のパス名がある場合
パターンに一致するものが見つかると、パス名が
パス名の展開。

glob オプションが無効な場合、パス名の展開は実行されません。

シェルは、読み取り可能なディレクトリで一致するパス名を検索します。 読み取り不可能なディレクトリは、
黙って無視されます。

次のオプションは、パス名展開の動作に影響します。

ヌルグロブ
このオプションは、一致するパス名が存在しない場合のパス名展開の結果に影響します。
見つかった。 有効にすると、結果は何も表示されません。 無効にした場合、結果は元のものになります
パターンワード。

ケースグロブ
このオプションは、照合における大文字と小文字の区別を指定します。 有効にすると、パターン マッチングが行われます。
大文字と小文字が区別されて実行されます。

ドットグロブ
このオプションは、ピリオド (.)。 無効にすると、
ファイル名の先頭のピリオドはワイルドカード パターンと一致しません (?   *)または
括弧表現。 有効にすると、生理のような特別な処理は行われなくなります。

マークディレクトリ
有効にすると、結果として得られるディレクトリ名である各パス名の末尾にスラッシュが付けられます。
(/).

拡張グロブ
このオプションにより拡張機能が有効になります。 (以下を参照してください)

パス名展開のエラーはすべて無視されます。 単語が無効なパターンの場合、
それは結果になるだけです。 一致しない場合、結果は null-glob オプションに依存します。
パス名が見つかりました。

パターン マッチングは、パス名の各ファイル名 (またはパス名コンポーネント) に対して行われます。 シェル
ワイルドカードや括弧式を含まないリテラル パターンのマッチングをスキップします。 として
結果、パターン /*/ふー   /*/fo[o] 場合、異なる展開結果が生じる可能性があります。
case-glob オプションは無効です。 たとえば、パターン /*/fo[o] パス名と一致します
/バー/FOO しかしパターン /*/ふー マッチングがスキップされるため、そうではありません foo.

拡張 in パス名 拡大
以下のパターンは、extended-glob オプションが有効な場合に使用できます。

**
ディレクトリは再帰的に検索され、パターンは任意の数のディレクトリに一致します。
ディレクトリ ファイル名 (それぞれはスラッシュで区切られます)。 名前が始まる任意のディレクトリ
ピリオドが付いているものは検索対象外となります。 たとえば、次のパターンです。 ディレクトリ/**/ファイル できる
パス名を一致させる dir / file, ディレクトリ/foo/ファイル, ディレクトリ/a/b/c/ファイル, etc.

このパターンは、パターン全体の最後に出現する場合には効果がありません (つまり、
フー/バー/**).

。**
このパターンはこんな感じ **、ただし、
ピリオドで始まる名前。

***
このパターンはこんな感じ **ただし、ディレクトリへのシンボリック リンクが見つかった場合は、
再帰検索では、ディレクトリも再帰的に検索されます。

。***
このパターンはこんな感じ ***、ただし、
ピリオドで始まる名前。

パターン マッチング 表記法


パターン マッチング 表記法 の構文です パターン 特定のセットを表す
文字列。 パターンが表す文字列のセットに文字列が含まれている場合、パターンは
と言われています match 文字列。 パターンが文字列に一致するかどうかは次のように定義されます。
続く。

ノーマル 文字
引用符で囲まれていない文字、または以下に定義されている特殊文字は通常の文字です。
文字、文字自体と一致します。

たとえば、次のパターンです。 ABC 文字列と一致します ABC、他の文字列ではありません。

単一文字 ワイルドカード
キャラクター ? 任意のXNUMX文字に一致します。

たとえば、次のパターンです。 交流 で始まる任意の XNUMX 文字の文字列と一致します。 a  
で終わる c、 といった AAC, ABC, 交流.

マルチキャラクター ワイルドカード
キャラクター * 任意の文字列 (空の文字列を含む任意の長さ) に一致します。

たとえば、次のパターンです。 交流 で始まる任意の文字列と一致します a 終わりに c、 そのような
as ac, ABC, a;xyz;c.

ブラケット 表現
括弧 () で囲まれたパターン[   ])です。 ブラケット 表現。 ブラケット
式では括弧の間に少なくとも XNUMX 文字が必要です。 間の文字
括弧は次のように解釈されます ブラケット 表現 パターン、これは以下で定義されます
括弧式の特殊な表記法。 括弧の表現パターンは、次のセットを表します。
文字。 括弧式は、セット内のいずれかの文字と一致します。
ブラケット表現パターンを表します。

左括弧 ([) の後に感嘆符 (!)、感嘆符はそうではありません
括弧式パターンの一部として扱われ、代わりに括弧式全体として扱われます。
次の文字に一致します セットに含まれる括弧表現パターン
を表します。 左括弧の後にキャレットが続く場合 (^) のように扱われます。
上記と同様に感嘆符を使用します (ただし、yash 以外のシェルではキャレットの扱いが異なる場合があります)。

左括弧 (または、次の感嘆符やキャレットがある場合) の後に
右括弧 (])、それは括弧表現パターンの一部として扱われます。
括弧式の終わり。 括弧式内の文字を引用符で囲むことはできません
括弧式の前に引用符が処理されるため、このパターンが使用されます。

パターン内の左括弧は、そうでない場合は通常の文字として扱われます。
有効な括弧式の始まり。

ノーマル 文字 (中 ブラケット 表現 パターン)
以下に定義する特殊文字以外の文字は通常の文字です。
キャラクターそのものを表します。

たとえば、括弧の表現パターン ABC XNUMX つの文字のセットを表します
a, b, c。 括弧式 [ABC] したがって、XNUMX つの文字のいずれかと一致します。

レンジ 表現
ハイフンの前後に文字 (または照合記号) が続くと、 範囲 表現,
これは、XNUMX つの文字のセットと、その XNUMX つの文字の間にあるすべての文字を表します。
照合順序。 あ 照合 注文 ロケールで定義された文字の順序です。
データ。

ハイフンの後に右括弧 (])、括弧は末尾として扱われます。
括弧式とハイフンを通常の文字として使用します。

たとえば、範囲式 3-5 XNUMX つの文字のセットを表します 3, 4,
5。 括弧式 [3-5-] したがって、XNUMX つの文字のいずれかに一致します 3, 4, 5,
-.

照合 を示すマークを追加しました
A 照合 シンボル 複数の文字を XNUMX つの文字として扱うことができます。
マッチング。 照合記号は、特殊記号で囲まれた XNUMX つ以上の文字で構成されます。
カッコ [.   .].

マッチング時に単一文字として扱われる XNUMX つ以上の文字を「」と呼びます。
照合 素子。 正確には、括弧表現パターンは一連の照合を表します。
要素と括弧式は文字ではなく照合要素と一致しますが、
ここでは簡潔にするためにそれらを区別しません。

たとえば、文字の組み合わせ「ch」は、
伝統的なスペイン語。 この文字の組み合わせが照合用として登録されている場合
ロケールデータの要素、括弧式 [[.ch.]df] のいずれかに一致します ch, d, f.

等価 クラス
An 同値 class 考慮される文字のセットを表します 同等のに直接影響を与えます。健全とされるのは
等価クラスは文字 (より正確には照合要素) で構成されます。
特殊な括弧で囲まれた [=   =].

同値クラスは、文字を構成する文字のセットを表します。
括弧と同じ主等価クラスに属する文字で囲まれています。
囲まれた文字として。 シェルはロケール データを参照して定義を調べます。
現在のロケールにおける等価クラス。

たとえば、XNUMX 文字の場合、 a, à, á, â, ã, ä 同じプライマリ内にあるように定義されています
同値クラス、括弧式 [[=a=]], [[=à=]], [[=á=]] のいずれかに一致します
XNUMX。

人格 クラス
A 文字 class は、事前定義された文字のセットを表します。 キャラクタークラスが作られている
特殊な括弧で囲まれたクラス名の [:   :]。 シェルはロケールを参照します
キャラクターがどのクラスに属しているのかを示すデータ。

次の文字クラスはすべてのロケールで使用できます。

[:低い:]
小文字のセット

[:アッパー:]
大文字のセット

[:アルファ:]
を含む文字のセット [:低い:]   [:アッパー:] クラス。

[:桁:]
XNUMX 進数のセット

[:x桁:]
XNUMX 進数のセット

[:alnum:]
文字と数字のセット。 [:アルファ:]   [:桁:] クラス。

[:空欄:]
改行文字を含まない空白文字のセット

[:スペース:]
改行文字を含むスペース文字のセット

[:punct:]
句読点のセット

[:print:]
印刷可能な文字のセット

[:cntrl:]
制御文字のセット

たとえば、括弧式は [[:下位:][:上位:]] 小文字または大文字と一致します
キャラクター。上記のクラスに加えて、状況に応じて他のクラスも使用される場合があります。
現在のロケールの定義。

リダイレクション


リダイレクション は、コマンドのファイル記述子を変更するために使用できる機能です。を使用することで
リダイレクトを使用すると、標準入出力を接続してコマンドを実行できます。
ファイルや端末以外のデバイス。

リダイレクト演算子をコマンド (単純なコマンドまたは
複合コマンド) 単純なコマンドでは、リダイレクト演算子は、
オペレータートークンが他のトークンから分離されている限り、コマンドは使用できません。複合コマンドでは、
リダイレクト演算子はコマンドの最後に指定する必要があります。

リダイレクト演算子は、コマンド本体が実行される前に処理されます。複数の
コマンド内のリダイレクト演算子は、出現順に処理されます。リダイレクション
演算子は、exec で使用される場合を除き、その演算子が使用されるコマンドにのみ影響します。
コマンドオペランドなしの組み込み。つまり、リダイレクトによって変更されたファイル記述子は、
コマンドが完了すると復元されます。

リダイレクト演算子は次で始まります < or >。で始まるリダイレクト演算子 < 影響を与えます
デフォルトでは標準入力 (ファイル記述子 0)。で始まるリダイレクト演算子 >
デフォルトでは、標準出力 (ファイル記述子 1) に影響します。別のファイルに影響を与えるには
記述子を使用すると、リダイレクト演算子の先頭に負でない整数を付けることができます。の
演算子は、整数で指定されたファイル記述子に影響を与えます。整数は次のとおりです。
の直前に < or > 間に空白は入れません。整数は次のとおりであってはなりません
どちらかを引用します。

リダイレクション 〜へ ファイル
最も一般的なタイプのリダイレクトは、ファイルへのリダイレクトです。

入力のリダイレクト
< トークン

出力のリダイレクト
> トークン

>| トークン

>> トークン

入出力のリダイレクト
<> トークン

当学校区の トークン 4つの拡張の対象となります。次の場合もパス名拡張の対象になります。
シェルは対話型です。展開結果はファイルのパス名として扱われます。
どのリダイレクトが実行されるか。パス名を展開しても単一のパス名が得られない場合は、
パス名、それはエラーです。

入力のリダイレクトでは、標準入力は次のファイル記述子に置き換えられます。
ターゲット ファイルへの読み取り専用アクセス用に開きます。対象ファイルが開けない場合
読み取り専用アクセスの場合、エラーになります。

出力のリダイレクトでは、標準出力は次のようなファイル記述子に置き換えられます。
ターゲット ファイルへの書き込み専用アクセス用に開きます。対象ファイルが開けない場合
書き込み専用アクセスの場合、エラーになります。対象のファイルが存在しない場合は、新しい空のファイルが作成されます。
作成され、開かれました。ターゲット ファイルが既に存在する場合、ファイルは次のように開かれます。

・ のために >| オペレータを使用すると、ファイルが通常のファイルである場合、ファイルを開くと空になります。

・ のために > 演算子を使用した場合、動作は >| clobber オプションの場合の演算子
有効になっています。このオプションが無効で、ファイルが通常のファイルである場合、ファイルは次のように扱われます。
エラー。

・ のために >> オペレータの場合、ファイルは追加のために開かれます。ファイルへの出力
記述子はファイルの最後に追加されます。

入出力のリダイレクトでは、標準入力がファイル記述子に置き換えられます。
これは、ターゲット ファイルへの読み取りおよび書き込みアクセス用に開かれています。ファイルが存在しない場合は、
新しい空のファイルが作成され、開かれます。

ソケット 出力先変更
ターゲット ファイルのパス名が次の形式の場合 / dev / tcp /host/ポート or
/ dev / udp /host/ポート ファイルを通常の方法で開くことができない場合、新しいソケットが作成されます。
との通信のために開かれています ポート host。リダイレクトにより、
ソケットへのファイル記述子を使用した標準入力または出力。

フォーム用にストリームソケットが開かれます / dev / tcp /host/ポート そしてデータグラムソケット
フォーム / dev / udp /host/ポート。実際に通信に使用されるプロトコルは、
シェルが使用するソケット ライブラリによって決定されます。通常、ストリーム ソケットは TCP を使用し、
データグラムソケット UDP。

ソケット リダイレクトでは、ファイル記述子は、
使用されるリダイレクト演算子のタイプ。

ソケット リダイレクトは yash の拡張機能であり、POSIX では定義されていません。バッシュにもあります
拡張としてのソケットのリダイレクト。

複製 of file 記述子
リダイレクトにより、既存のファイル記述子を複製したり、閉じたりすることができます。

ファイルディスクリプタの重複
<& トークン

>& トークン

当学校区の トークン ファイルへのリダイレクトと同様に展開の対象になりますが、ファイルとして扱われます。
パス名ではなく記述子です。したがって、拡張された トークン 負ではない整数でなければなりません。

当学校区の <&   >& 演算子は、によって指定されたファイル記述子を複製します。 トークン 標準に
それぞれ入力と出力。 (演算子には負でない整数を接頭辞として付けることができます
ファイル記述子が標準以外のファイル記述子に複製されるようにする
入力または出力。)

拡張された場合 トークン 非負の整数ではなく単一のハイフンである場合、ファイル
記述子は複製されずに閉じられています。デフォルトでは、 <&   >& オペレータが閉じます
それぞれ標準入力と標準出力ですが、演算子には接頭辞を付けることができます。
負ではない整数を指定して、別のファイル記述子を閉じます。

POSIXly-correct モードでは、ファイル記述子は、 <&
演算子であり、 >& オペレータ。

ここに ドキュメント   こちら ストリング
ここに ドキュメント   こちら string 文字列を読み取るファイル記述子へのリダイレクトを許可します
シェルコマンドで直接指定します。

ここのドキュメント
<< トークン

<<- トークン

ここの文字列
<< トークン

ヒアドキュメントまたはヒア文字列では、標準入力が読み取り可能なファイルに置き換えられます。
ディスクリプタ。コマンドがファイル記述子から読み取るとき、ファイル記述子の内容を読み取ります。
以下で定義されているヒアドキュメント/文字列。

ヒアドキュメント演算子 (<< or <<-) がコマンド内に出現すると、シェルは
次の行からはヒアドキュメントの内容です。ここのドキュメントの内容
解析もコマンドとして実行もされません。の トークン オペランドで区切り文字を指定した後
コンテンツの終わりを示します。 ( トークン 拡張の対象にはなりませんが、
) ここに記載されている内容は、引用の直前で終了しています。
を含む最初の行 トークン のみ。を使用するときは、 <<- 演算子、すべてのタブ文字
ヒアドキュメントの内容の各行の先頭が削除され、区切り文字が削除されます。
トークン 前にタブ文字を付けることができます。

1 行に複数のヒア ドキュメント演算子がある場合、ヒア ドキュメントの内容は
ドキュメントは次の順序で解析されます。最初のヒアドキュメントの内容は、
次の行と、次の行を含む最初の行の前で終了します。 トークン 最初に続いたのは
オペレーター。その行の直後に、2 番目のヒア ドキュメントの内容が始まります。
に。

ヒアドキュメントの内容は文字通りに扱われます。空白やタブなどはそのまま残ります。
は。例外は、 トークン はまったく引用されていません:

· 内容はパラメータ展開、コマンド置換、算術演算の対象となります。
拡張。

· コンテンツ内のバックスラッシュは、前にある場合にのみ引用符として扱われます。 $, `,
"、または別のバックスラッシュ。

· バックスラッシュの後に改行が続くと、行継続として扱われます。

ここの文字列では、 トークン へのリダイレクトのように演算子が展開された後
ファイル。展開結果はhere文字列の内容となります。改行文字
ここの文字列内容の末尾に自動的に追加されます。

ここで string は、POSIX で定義されていない yash の拡張子です。 bash、ksh、などの他のシェル
と zsh には同じ機能があります。

パイプライン 出力先変更
パイプライン 出力先変更 任意の目的に使用できるパイプラインを開くことができます。

パイプラインのリダイレクト
>> | トークン

当学校区の トークン ファイルへのリダイレクトと同様に展開の対象になりますが、ファイルとして扱われます。
パス名ではなく記述子です。したがって、拡張された トークン 負ではない整数でなければなりません。

パイプライン リダイレクトにより、新しいパイプラインが開きます。標準出力 (またはファイル記述子)
演算子の前に指定されたもの (存在する場合) は、開いているファイル記述子に置き換えられます。
パイプラインに書き込みます。で指定されたファイル記述子 トークン ファイルに置き換えられます
記述子がパイプラインからの読み取り用に開かれています。

パイプライン リダイレクトは、POSIX では定義されていない yash の拡張機能です。

プロセス 出力先変更
プロセス 出力先変更 別のコマンドに接続されたパイプラインを作成します。

プロセスのリダイレクト
<( command...)

>( command...)

プロセスのリダイレクトでは、 command 指定されたものはサブシェルで実行されます。プロセスの場合
リダイレクトは次の形式です <( command...)、の標準出力 command に接続されています
リダイレクトが関連付けられているコマンドの標準入力へのパイプライン。もし
プロセスのリダイレクトは次の形式です >( command...)、の標準入力 command is
パイプラインを介してコマンドの標準出力に接続され、リダイレクトは
と関連した。

プロセス リダイレクトは yash の拡張機能であり、POSIX では定義されていません。 Bash と zsh には、
プロセス置換と呼ばれる機能。yash のプロセスと同じ構文を使用します。
リダイレクトですが、動作が互換性なく異なります。

COMMAND 実行


このセクションでは、コマンドの実行方法について説明します。

実行 of シンプルな コマンド
簡単なコマンドは次のように実行されます。

1. 単純なコマンド内のすべてのトークンは、割り当てとリダイレクトを除いて展開されます。
トークン。展開中にエラーが発生した場合、単純なコマンドの実行は
ゼロ以外の終了ステータスで中止されました。

次の手順では、展開結果の最初のワードを次のように呼びます。
command 、その他の単語は command 引数。たった一言だけあるとしたら
展開結果にはコマンド引数語はありません。どれも存在しない場合は、
展開結果にもコマンド名はありません。

2. コマンドで指定されたリダイレクトがあれば、それが処理されます。各単語の後のトークン
リダイレクト演算子が展開されます。リダイレクト処理中にエラーが発生した場合
(単語トークンを展開する場合を含む)、この単純なコマンドの実行は次のとおりです。
ゼロ以外の終了ステータスで中止されました。

3. コマンドで指定された割り当てがあれば、それが処理されます。課題ごとに
トークンを使用すると、値が展開され、指定された変数に割り当てられます。エラーの場合
割り当て中に発生します (割り当てられる値を展開するときを含む)。
この単純なコマンドの実行は、ゼロ以外の終了ステータスで中止されます。

· コマンド名がない場合、または名前が特別な組み込みまたは関数を示している場合、
割り当ては永続的です。割り当てられた値はコマンドが終了した後も残ります。
完了しました (変数が再割り当てされるまで)。

· それ以外の場合、割り当ては一時的なものになります。割り当てられた値は、次の期間にのみ持続します。
この簡単なコマンドを実行します。

コマンド名を指定すると、割り当てられた変数が自動的にエクスポートされます。
または、すべてのエクスポート オプションが有効になっています。

4. コマンド名がない場合、コマンドの実行は終了ステータス XNUMX で終了します。
(コマンド内にコマンド置換がない限り、その場合は終了
単純なコマンドのステータスは、最後に実行されたコマンド置換のステータスです)。

5. 実行するコマンドは、コマンド検索アルゴリズムと
コマンドが実行されます。

・コマンドが外部コマンドの場合、コマンドを新規作成して実行します。
サブシェルを使用し、サブシェル内で「exec」システムコールを呼び出します。コマンド名と
引数は実行されたコマンドに渡されます。エクスポートされた変数は、
実行されたコマンドを環境変数として指定します。

· コマンドがビルトインの場合、コマンド引数を使用してビルトインが実行されます。
組み込みに渡されます。

・コマンドが関数の場合、関数の内容が実行されます。
コマンドの引数を関数の引数として使用します。

コマンドが実行された場合、この単純なコマンドの終了ステータスは
実行されたコマンド。アルゴリズムがコマンドを決定できなかった場合、コマンドは実行されません。
シェルが実行に失敗した場合、終了ステータスは 127 になります。
コマンドの場合、終了ステータスは 126 です。実行されたコマンドがシグナルによって強制終了された場合、
終了ステータスはシグナル番号に 384 を加えたものです。

注意
yash 以外のシェルでは、コマンド実行時の終了ステータスが異なる場合があります。
POSIX 標準では終了ステータスのみが要求されるため、シグナルによって強制終了されます。
「128より大きい」こと。
シェルが POSIX 的に正しいモードではなく、アルゴリズムが判断できなかった場合
コマンド、コマンド 評価する -i -- 「${COMMAND_NOT_FOUND_HANDLER-}」 評価されます。その間
コマンド実行時、位置パラメータは一時的にコマンド名に設定されます。
そして最初のステップに至った議論。実行中に定義されたローカル変数
実行が終了すると、実行は削除されます。の ハンドリング ローカル変数は
初期値が空の文字列で自動的に定義されます。もし ハンドリング
コマンド文字列の実行が終了すると、変数には空ではない値が入ります。
シェルは、コマンドが正常に決定され、実行されたかのように見せかけます。出口
この場合、単純なコマンドのステータスはコマンド文字列のステータスです。

Command サーチ
簡易コマンドで実行されるコマンドは、コマンド名によって決まります。
次のアルゴリズム:

1. コマンド名にスラッシュ(/)、名前全体が
外部コマンドのパス名。外部コマンドは次のように決定されます。
実行されたコマンド。

2. コマンド名が特殊なビルトインの場合、そのビルトインは、
実行されたコマンド。

3. コマンド名が既存の関数の名前である場合、その関数は
実行されたコマンドとして決定されます。

4. コマンド名が準特殊ビルトインの場合、そのビルトインはコマンド名として決定されます。
実行されたコマンド。

5. コマンド名が通常のビルトインの場合、そのビルトインは、
シェルが POSIX 的に正しいモードでない限り、コマンドは実行されません。

6. シェルは、実行されたコマンドの PATH を検索します。

の値 パス 変数はコロンで区切られます。切り離された各パーツは、
ディレクトリのパス名とみなされます (空のパス名は、現在作業中のパス名を示します)
ディレクトリ)。シェルはディレクトリを (出現順に) 検索し、
ディレクトリに、次の名前の実行可能な通常のファイルが直接含まれているかどうかを確認します。
コマンド名と同じです。そのようなファイルが見つかった場合:

・コマンド名がビルトインの名前の場合、そのビルトインは次のように決定されます。
実行されたコマンド。

· それ以外の場合は、ファイルが実行されたコマンドと判断されます。 (ファイルは
外部コマンドとして実行されます。)

該当するファイルが見つからない場合は、実行コマンドとして決定されません。

シェルが上記の検索中にコマンド名に一致するファイルを見つけると、
ファイルが絶対パスの場合、シェルはファイルのパス名を記憶します。アルゴリズムが
上記が同じコマンド名に再度使用されると、シェルは検索をスキップし、直接
実行するコマンドを決定します。実行可能な通常ファイルが存在しない場合
ただし、シェルは記憶されているパス名で再度検索し、記憶されているパス名を更新します。
パス名。ハッシュ組み込みを使用して、記憶されたパス名を管理できます。

終了 of   shell
入力の最後に到達し、すべての入力を解析して実行すると、シェルは終了します。
コマンドまたは exit 組み込みが実行されたとき。シェルの終了ステータスは次のとおりです。
シェルが実行した最後のコマンド (コマンドが実行されなかった場合はゼロ)。出口
シェルのステータスは常に 0 ~ 255 (両端の値を含む) の間です。の終了ステータスが
最後のコマンドが 256 以上の場合、シェルの終了ステータスは残りのコマンドになります。
終了ステータスを 256 で割った値。

終了ハンドラーがトラップ組み込みによって登録されている場合、ハンドラーはそのまま実行されます。
シェルが終了する前に。ハンドラー内で実行されたコマンドの終了ステータスは、
シェルの終了ステータスに影響します。

非対話型シェルで次のいずれかのエラーが発生した場合、シェルはただちに
ゼロ以外の終了ステータスで終了します。

· 構文エラーのためコマンドを解析できません(シェル実行中を除く)
初期化)。

· 特別な組み込みは、POSIX 的に正しいモードとコマンド引数で実行されます。
組み込みの引数の構文を満たしていません。

· 単純なコマンドでリダイレクトまたは代入中にエラーが発生する
name は特別な組み込みであり、シェルは POSIX 的に正しいモードです。

・展開時(シェルの初期化時を除く)にエラーが発生します。

注意
yash 以外の一部のシェルは、実行するコマンドが見つからないと終了します。
コマンド検索。

機能
機能 複合コマンドを単純なコマンドとして実行できるようにします。関数は次のとおりです
関数定義コマンドで定義し、簡単なコマンドで実行します。使用できます
unset 組み込み関数定義を削除します。

yash の起動時に事前定義された関数はありません。

関数は、複合コマンドである本体を実行することによって実行されます。一方、
関数が実行されている場合、位置パラメータは関数に与えられた引数に設定されます。
関数。関数の実行が終了すると、古い位置パラメータが復元されます。

コミュニティ variables
コミュニティ variables 関数内で定義され、存在する一時変数です。
関数実行時のみ。これらは、組み込みのタイプセットによって定義できます。彼らは
関数の実行が終了すると削除されます。

ローカル変数は、 隠す 関数の前にすでに定義されている変数
処刑が始まった。ローカル変数が存在すると、既存の変数にアクセスできなくなります。
同じ名前の関数が関数内で定義されています。古い変数に再びアクセスできるようになります
関数の実行が終了したとき。

関数を実行していないときはローカル変数を作成できません。通常の変数は
そうしようとすると作成されます。

Command 実行 環境
シェルは実行中に次のプロパティを保持します。

· 作業ディレクトリ

· オープンファイル記述子

· ファイル作成マスク (umask)

· ハンドラーが「無視」(トラップ) に設定されているシグナルのセット

・ 環境変数

· リソース制限 (ulimit)

これらのプロパティは、シェルの呼び出し元からシェルに継承され、またシェルから継承されます。
シェルによって実行される各外部コマンドにシェルを追加します。

プロパティは、組み込みコマンドによってシェルの実行中に変更できます。
変数の代入など。

サブシェル
A サブシェル シェルプロセスのコピーです。サブシェルは以下の実行に使用されます。
グループ化、パイプラインなど。

サブシェルは、シェル内で定義された関数、エイリアスなどを継承します。
サブシェルはシェル プロセスのコピーであるため、上記のプロパティは同じです。注目すべき例外
には次の値があります:

・トラップビルトインで登録したトラップはサブシェル内で1つを除いて全てリセットされる
アクションが「無視」に設定されている。 (以下を参照してください)

· サブシェルでは対話モードとジョブ制御が無効になります。仕事はそうではありません
サブシェルによって継承されます。

サブシェルは元のシェルとは独立して実行されるため、サブシェルの変更は
上記のプロパティは、元のシェルのプロパティには影響しません。

注意
サブシェルに単一のトラップが組み込まれている場合、一部のシェル (yash を除く) は、
サブシェルに入るときにトラップをリセットしません。

インタラクティブ モード


当学校区の 相互作用的 モード ユーザーとの直接対話を目的としたシェルのモードです。
yash が対話モードの場合、それは yash と呼ばれます。 相互作用的 shell.

シェルが対話モードで実行されるかどうかは、
シェル。シェルが起動した後は、対話モードをオンまたはオフに切り替えることはできません。

シェルが対話型の場合:

· 初期化スクリプトは呼び出し中に実行されます。

· シェルはメールをチェックし、コマンドを読み取るとコマンド プロンプトを出力します。仕事
ジョブ制御がアクティブな場合、ステータスの変更も報告されます。行編集を使用することもできます
端末の能力によります。

・実行したコマンドはコマンド履歴に自動的に登録されます。

· シェルによって実行されたコマンドが SIGINT 以外のシグナルによって強制終了された場合、
SIGPIPE を使用すると、シェルはその事実を標準エラーに報告します。

· ファイル名トークンは、ファイル リダイレクトでのパス名拡張の対象となります。

· 非同期コマンドの標準入力は自動的にリダイレクトされません。
/dev/null (POSIXly 正しいモードのみ)。

· コマンド中に構文エラーまたは展開エラーが発生した場合、シェルは終了しません。
実行。 (シェルの終了を参照)

· シェルは、SIGINT、SIGTERM、または SIGQUIT シグナルを受信して​​も終了しません。

・シグナルハンドラが設定されていても、内蔵トラップによりシグナルハンドラを変更可能
シェルが呼び出されたときに「無視」します。

· の値 - 特別なパラメータには以下が含まれます i.

· シェルのロケールは、 LC_CTYPE 値が次の場合は常に変数
変更されました (シェルが POSIX 的に正しいモードではない場合)。

・execオプションがoffの場合でもコマンドは実行されます。

·ignore-eof オプションは、有効にすると有効になります。

· シェルが入力の終わりに達するか、出口組み込みが実行されると、シェルは
停止したジョブがあるかどうかを確認します。存在する場合、シェルは警告を出力しますが、
実際に退出する。

· デフォルトのサスペンド組み込みは、シェルがセッション リーダーである場合、シェルを停止できません。

· ドット組み込みが読み取るスクリプト ファイルを見つけられない場合、シェルは終了しません。

· exec ビルトインがコマンドの実行に失敗した場合、シェルは終了しません (そうでない場合)。
POSIX 的に正しいモード)。

・wait組み込みが待機していたジョブが終了した場合、その旨が報告される
(ジョブ制御がアクティブで、POSIX 的に正しいモードではない場合のみ)。

· read 組み込みが 2 行目以降を読み取ると、プロンプトが出力されます。

プロンプト
インタラクティブシェルは、 プロンプト コマンドを読み取る直前。の内容は、
プロンプトは、の値によって指定されます。 PS1   PS2 変数。前者は次の目的で使用されます
コマンドの最初の行を読み取り、後者を他の行で読み取ります。

プロンプトが出力されると、変数値がパラメータ展開されます。
コマンド置換および算術拡張 (ただし、POSIX 標準では次のことが必要であることに注意してください)
パラメータ拡張のみ)。展開の結果は以下のルールによって解析され、
実際のプロンプト文字列を作成し、標準エラーに出力します。

POSIXly-correct モードでは、各感嘆符 (!) 文字列内の は次のように置換されます。
入力中のコマンドのコマンド履歴番号。隣接する 2 つの感嘆符
マーク(!!) は単一の感嘆符として出力されます。他の文字はそのまま印刷されます。

シェルが POSIXly コマンド モードではない場合、次の表記法を使用して、
プロンプト文字列をフォーマットします。表記はリストで指定された文字列に置き換えられます
下に。表記として解釈されない文字はそのまま出力されます。

\a
ベル文字(ASCIIコード:7)

\e
エスケープ文字(ASCIIコード:27)

\j
シェル内のジョブの数。

\n
改行文字(ASCIIコード:10)

\r
キャリッジリターン文字(ASCIIコード:13)

\!
入力中のコマンドのコマンド履歴番号

\$
# シェルの実効ユーザー ID が 0 の場合。 $ さもないと。

\\
バックスラッシュ

\[, \]
これら 2 つの表記法は、プロンプト文字列の、画面上に表示されない部分を囲むことができます。
ターミナル。シェルが数をカウントするとき、囲まれた部分は無視されます。
端末に表示される文字を正確に揃えるため
プロンプト文字列に特殊な目に見えない文字が含まれている場合、端末上で。

\fフォントスペック.
行編集がアクティブな場合、この表記は特殊文字に置き換えられます。
端末で可能な場合は、端末上のフォント スタイルを変更します。行編集の場合
が非アクティブであるか、端末がフォント スタイルを変更できない場合、この表記は次のようになります。
黙って無視されました。次の 1 つ以上を使用できます。 フォントスペック:

k
フォントの色を黒に変更します

r
フォントの色を赤に変更します

g
フォントの色を緑色に変更します

y
フォントの色を黄色に変更します

b
フォントの色を青に変更します

m
フォントの色をマゼンタに変更します

c
フォントの色をシアンに変更します

w
フォントの色を白に変更します

K
背景色を黒に変更します

R
背景色を赤に変更します

G
背景色を緑色に変更します

Y
背景色を黄色に変更します

B
背景色を青に変更します

M
背景色をマゼンタに変更します

C
背景色をシアンに変更します

W
背景色を白に変更します

t
フォントの色または背景を明るくします (次のいずれかの直後にのみ使用できます)
上の文字)

d
フォントと背景の色を通常の色に変更します

s
フォントを目立たせる

u
フォントに下線を付ける

v
フォントと背景の色を反転する

b
フォントを点滅させる

i
フォントを暗くする

o
フォントを太字にする

x
フォントを非表示にする

D
色とスタイルを標準にする

フォントと背景の実際の色は端末によって定義されます。違う
端子には異なる色が使用される場合があります。

通常のプロンプトに加えて、プロンプト文字列をプロンプトの右側に表示できます。
行編集がアクティブな場合はカーソル。それらのプロンプトは次のように呼ばれます。 プロンプト。 の内容
正しいプロンプトは、 PS1R   PS2R それぞれに対応する変数
から PS1   PS2 変数。

上記の表記法を使用すると、ユーザーが入力するコマンド文字列のフォント スタイルを次のように指定できます。
プロンプトと同様に変更されました。コマンド文字列のフォント スタイルは、
の値 PS1S   PS2S 変数。それぞれが PS1   PS2 変数。 NS
値には次のものを含めることができます \fフォントスペック. 表記のみ。

シェルが POSIX 的に正しいモードではない場合、 プロンプト_コマンド
変数は各プロンプトの前に実行されます。

Command 歴史
Command 歴史 実行されたコマンドを記憶して許可するシェルの機能です。
後で再実行します。対話モードで実行したコマンドは自動的に保存されます
コマンド履歴にあります。保存されたコマンドは行編集を使用して編集および再実行できます
fc と履歴の組み込み。

コマンドは行ごとに保存されます。空白以外の文字を含まない行
履歴には保存されません。空白で始まる行は保存されません。
hist-space オプションがオンになっています。

コマンド履歴はファイルに保存されます。対話型シェルの後に初めて履歴が使用されるとき
が開始されると、シェルは履歴を保存するファイルを開きます。ファイル名は
の値 ヒストファイル 変数。ファイルを開いたときに履歴データが含まれている場合、そのデータは
シェルの履歴に復元されます。ファイルの内容はユーザーがリアルタイムで更新します。
シェルにコマンドを入力します。もし ヒストファイル 変数が設定されていないか、ファイルを実行できません
正常に開かれた場合、履歴はファイルに保存されませんが、履歴機能は保存されます。
他のすべての点で機能します。

履歴に保存されるコマンドの数は、 履歴サイズ
変数。シェルは古い履歴データを自動的に削除するため、保存された履歴データの数は減少します。
コマンドは値を超えません。もし 履歴サイズ 変数が設定されていないか、その値が
自然数ではない場合、500件が履歴に保存されます。

シェルは次の値を調べます。 ヒストファイル   履歴サイズ 履歴が存在する場合のみ変数
この機能は、シェルの起動後に初めて使用されます。 「履歴機能が使用される」のは次の場合です。

· fc または履歴組み込みが実行される、

· 行編集が使用されます (履歴データがリコールされるかどうかに関係なく)。
行編集)、または

· シェルにコマンドが入力される

したがって、変数は初期化スクリプトで設定する必要があります。

yash の複数のインスタンスが単一の履歴ファイルを共有する場合、すべてのシェルは
同じ履歴データです。その結果、シェル インスタンスによって実行されたコマンドは、
別のシェル インスタンスで呼び戻されます。同じ履歴を共有するシェルには、
同じ 履歴サイズ 値を変更して、履歴データを適切に操作できるようにします。

Yash の履歴データ ファイルには、他の種類のファイルと互換性のない独自の形式があります。
シェル。

当学校区の ヒストラムダップ 変数を設定して重複した履歴項目を削除できます。

Mail 点検
対話型シェルは電子メールの受信を通知できます。シェルは定期的にチェックします
ユーザーが指定したファイルの変更日時。ファイルが変更されている場合
前回のチェック以降、シェルは通知メッセージを出力します (シェルが
POSIX 的に正しいモードではなく、ファイルは空です)。メールボックスファイルを指定することで、
チェックすると、ファイルが変更されたときにシェルはメッセージを出力します。
メールが受信されました。

チェックは、シェルがコマンド ライン プロンプトを出力する直前に行われます。チェックの間隔
によって指定できます メールチェック 秒単位で変化します。変数値が 0 の場合は、チェックを入れます。
すべてのプロンプトの前に実行されます。変数値が負でない整数でない場合、いいえ
チェックが行われます。

更新時刻をチェックするファイルは、 MAIL 変数。 ザ・
変数値はファイルのパス名に設定する必要があります。

複数のファイルを確認したり、通知メッセージをカスタマイズしたりする場合は、
  メールパス の代わりに変数 MAIL 変数。とき メールパス 変数が設定され、
MAIL 変数は無視されます。の値は、 メールパス 変数は 1 つ以上に設定する必要があります
チェックするファイルのパス名をコロンで区切って指定します。各パス名の後には、
パーセント記号 (%) とカスタム通知メッセージ。
対応するファイルが変更されました。パス名にパーセント記号が含まれている場合は、
バックスラッシュで囲みます。指定されたメッセージはパラメータ拡張の対象となります。のために
たとえば、の値が メールパス 変数は /foo/mail%New mail!:/bar/mailbox%完了しました
メール:/baz/mail\%data、シェルは印刷します

· New 郵便! ファイル /foo/mail が変更されたとき

· あなたは mail ファイル /bar/mailbox が変更されたとき

· ファイル /baz/mail%data が変更されたときのデフォルトのメッセージ。

採用情報 CONTROL


Job コントロール 複数のコマンドを同時に実行するシェルの機能です。
コマンドを一時停止/再開します。

コントロールがアクティブな場合:

· シェルによって実行されるすべてのパイプラインは、 ジョブ。ジョブには固有のプロセス グループがあります
ジョブ内のすべてのプロセス間で共有される ID。

· シェルがプロセスを待っている間にジョブのプロセスが一時停止された場合
終了するには、シェルはプロセスが終了したかのように次のコマンドに進みます。
シェルはジョブを中断されたものとして記憶するため、後で再開できます。

· ジョブが同期的に実行される場合、シェルはジョブのフォアグラウンド プロセス グループを設定します。
ターミナルをジョブのプロセスグループに接続します。ジョブが終了 (または一時停止) されると、
シェルがフォアグラウンドに戻ります。

· コマンド置換を実行するサブシェルには、次のような独自の一意のプロセス グループ ID があります。
仕事。ただし、シェルはサブシェルをジョブとして覚えていないため、サブシェルをジョブとして記憶することはできません。
中断または再開。

· シェルが対話型の場合、各コマンド ライン プロンプトの前にジョブ ステータスが報告されます。
まるでコマンドのように jobs -n 実行されます。

· 非同期コマンドの標準入力は自動的にリダイレクトされません。
/dev/null (POSIX 的に正しいモードでない場合)。

· シェルは、SIGTSTP シグナルを受信して​​も終了しません。

· の値 - 特別なパラメータには以下が含まれます m.

・wait組み込みが待機していたジョブが終了した場合、その旨が報告される
(シェルが対話型で、POSIX 的に正しいモードではない場合のみ)。

ジョブ制御が無効な場合、シェルで実行されるプロセスは同じプロセスグループになります。
シェルとしての ID。シェルは、非同期コマンドを制御されていないジョブとして扱います。

次の組み込みを使用してジョブを操作できます。

jobs
既存のジョブを印刷します

背景と背景
フォアグラウンドまたはバックグラウンドでジョブを実行する

wait
ジョブが完了する(または一時停止される)のを待ちます。

勘当します
仕事を忘れる

kill
ジョブにシグナルを送信します

対話型のジョブ制御シェルは、デフォルトで各プロンプトの前にジョブのステータスを報告します。
次のオプションを設定して、他のタイミングでシェルレポートステータスを作成できます。

通知する
シェルは、ジョブのステータスが変化するたびにすぐに報告します。

通知ル
行編集中にジョブのステータスが変化すると、シェルはすぐに報告します。

ジョブは、次の場合にシェルのジョブ リストから削除されます。

· 完了し、「完了」ステータスが報告されます。

· wait 組み込みがジョブの終了を正常に待機した、または

· disown 組み込みによりジョブが削除されました。

注意
「停止」という言葉は、ジョブ制御の文脈では「一時停止」と同義です。

Job ID
一部の組み込みでは、次の表記法が使用されます。 ジョブ ID、ジョブを指定するには
運営する:

%, %%, %+
現在の仕事

%-
前の仕事

%n
ジョブ番号を持つジョブ nここで、 n は正の整数です

%string
名前がで始まるジョブ string

%?string
名前に次が含まれるジョブ string

当学校区の 現在 ジョブ   ジョブ 以下に従ってシェルによって選択されるジョブです。
ルール:

· 中断中のジョブが 1 つ以上ある場合は、その中から現在のジョブが選択されます。

・現在のジョブ以外に中断中のジョブが1つ以上ある場合、前のジョブ
その中から選ばれます。

・現職と前職は必ず違う。シェルのジョブが 1 つだけの場合、
それは現在の仕事であり、前職はありません。

· 現在のジョブが終了すると、前のジョブが現在のジョブになります。

・現在のジョブが変更されると、古い現在のジョブが以前のジョブになります。
古い仕事が終わったとき。

· フォアグラウンド ジョブが一時停止されると、そのジョブが現在のジョブになります。

Yash には、現在/前のジョブ選択のルールを変更するためのオプションがいくつかあります。 (
上記のルールは、以下のオプションよりも優先されます。)

現在の非同期
新しい非同期コマンドが開始されると、それが現在のジョブになります。

カーブバック
ジョブが bg ビルトインによって再開されると、そのジョブは現在のジョブになります。

カーストップ
ジョブが一時停止されると、そのジョブが現在のジョブになります。

上記のルールが満たされている限り、現在のジョブと前のジョブは変更されません。

POSIX 標準で定義されている現在/前のジョブ選択のルールはより緩やかです
上記の yash のルールよりも。他の POSIX 準拠シェルは、現在および以前のシェルを選択する可能性があります。
仕事が違う。

BUILT-IN コマンド


内蔵 コマンド シェルに実装され、によって実行されるコマンドです。
外部プログラムを使用しないシェル。

種類 of 内蔵 コマンド
yash には 3 種類の組み込みコマンドがあります。特別な組み込みコマンド、
準特殊な組み込みコマンドと通常の組み込みコマンド。

Special 内蔵 コマンド 他のコマンドよりもはるかに重要なコマンドです。彼らは処刑される
対応する外部コマンドの有無は関係ありません。の結果
特別な組み込み最後の関数を呼び出す単純なコマンドで行われる変数の割り当て
コマンドが終了した後。さらに、POSIX 的に正しいモードでは、非対話型
リダイレクトエラー、割り当てが発生した場合、シェルはゼロ以外の終了ステータスでただちに終了します。
特殊な組み込みコマンドでエラー、またはオプションまたはオペランドの誤用が発生した場合。

セミ 特別 内蔵 コマンド は 2 番目に重要な組み込みコマンドです。彼らです
対応する外部コマンドの有無に関係なく実行されます。その他では
部分的には通常の組み込みコマンドと同じです。

レギュラー 内蔵 コマンド それほど重要ではない組み込みコマンドです。
外部コマンドとして実装されているか、POSIX にリストされていません。 POSIX的に正しい場合
モードでは、対応する外部コマンドが見つかった場合にのみ通常の組み込みが実行されます。
パスにあります。

構文 of command 引数
このセクションでは、コマンド引数に関する一般的な規則について説明します。の組み込みコマンド
特に明記されていない限り、ルールに従ってください。

コマンドの引数には2種類あります。 1 つはオプション、もう 1 つはオペランドです。アン
オプションはハイフン (-)コマンドの方法を変更します
振る舞います。一部のオプションは引数を取ります。オペランドはオプションではない引数であり、
コマンドが操作するオブジェクトを指定します。

1 つのコマンドに複数のオプションを指定する場合、通常、オプションの順序は次のとおりです。
重要ではありません。ただし、オペランドの順序はコマンドの動作に影響します。

オプションは、単一文字のオプションまたは長いオプションのいずれかです。単一文字のオプション
アルファベット 1 文字で識別されます。長いオプションは複数の要素によって識別されます。
アルファベット文字。 POSIX 標準では単一文字のオプションのみが規定されているため、
POSIX 的に正しいモードでは、長いオプションは使用できません。

1 文字のオプションは、ハイフンとその後に続く文字で構成されます。例えば、 -a is
単一文字のオプション。引数を取る単一文字のオプションには、
引数はオプション名の直後に置きます。

例: 4. 当学校区の セッションに 内蔵   XNUMX文字 オプション

内蔵セットの場合、 -m 引数をとらない 1 文字のオプションであり、
-o 引数を取るものです。

· セッションに -o エラー -m

· セッションに -errexit -m

これら 2 つのコマンド ラインでは、 エラー に対する議論です -o オプションを選択します。

上記の 2 番目の例では、 -o オプションとその引数は 1 つに結合されます
コマンドライン引数。 POSIX 標準では、そのスタイルと POSIX 準拠のスタイルは廃止されています。
アプリケーションはオプションとその引数を別のコマンドライン引数として指定する必要があります。
ただし、yash は両方のスタイルを受け入れます。

引数をとらない 1 文字のオプションを 1 つのコマンドに結合できます。
行引数。たとえば、次の 3 つのオプション -a, -b   -c に組み合わせることができます -abc.

長いオプションは、2 つのハイフンとそれに続くオプション名で構成されます。例えば、
--長いオプション 長いオプションです。次のように、長いオプション名の最後の文字の一部を省略できます。
曖昧でない限り。たとえば、次のように使用できます - 長さ --長いオプション if
で始まる他のオプションはありません - 長さ。単一文字のオプションと同様に、長い
引数を取るオプションでは、引数がコマンドライン引数である必要があります。
オプション名の後ろに置くか、オプションと同じコマンドライン引数に指定します
等号で区切られた名前 (=).

例: 5. 当学校区の fc 内蔵   長い オプション

fc内蔵の場合、 - 静かな 引数をとらない長いオプションです。 - 編集者
引数を取るものです。

· fc - 編集者 vi - 静かな

· fc --editor=vi - 静かな

これらのコマンドラインでは、 vi に対する議論です - 編集者 オプションを選択します。

オプションではない引数 (またはその引数) はオペランドとして解釈されます。の
POSIX 標準では、すべてのオプションをオペランドの前に指定する必要があります。したがって、
POSIX 的に正しいモードでは、最初のオペランドの後の引数はすべて解釈されます。
(オプションのように見えても) オペランドとして。 POSIX 的に正しいモードでない場合は、次のようにすることができます。
オペランドの後にオプションを指定します。

シェルが POSIX 的に正しいモードであるかどうかに関係なく、引数は
2 つのハイフンだけで構成されています (--) は、オプションとオペランドの間の区切り文字として使用できます。
以降のすべてのコマンドライン引数 -- 区切り文字はオペランドとして解釈されるため、
ハイフンで始まるオペランドは区切り文字を使用して正しく指定してください。

例: 6. オプション   オペランド 〜へ   セッションに 内蔵

· セッションに -a -b -- -c -d

この例では、 -a   -b オプションと -c   -d はオペランドです。の -- セパレータ自体
はオプションでもオペランドでもありません。

シェルが POSIX 的に正しいモードであるかどうかに関係なく、引数は
単一のハイフン (-) はオペランドとして解釈されます。

行編集


行編集 コマンドを入力するときにコマンドテキストを編集できます。
インタラクティブなシェル。シンプルなビジュアルインターフェイスエディターとして機能するだけでなく、
コマンド履歴と統合されています。コマンドを呼び出し、編集、実行できます。
fc 組み込みを使用する代わりに行編集を使用して履歴を作成します。

行編集には vi モードと emacs モードの 2 つの編集モードがあり、それぞれに独自のキーがあります。
バインディング設定。編集モードを切り替えることで、編集モードで使用するキーバインディングを変更できます。
行編集。各モードには対応するシェル オプションがあり、これにより、
モードが現在アクティブかどうか。一度に複数のモードをアクティブにすることはできません。
のオプションをオンにすると、他のモードのオプションは自動的にオフになります。
1つのモード。これらのオプションがオフの場合、行編集機能全体が無効になります。

対話型シェルが開始されると、vi モードが自動的にアクティブ化されます。
標準入力とエラーは両方とも端末に接続されます。

行編集は、標準入力とエラーの両方が接続されている場合にのみ使用できます。
ターミナル。そうでない場合、シェルは黙って通常の入力メカニズムに戻ります。その間
行編集が使用されている場合、シェルは termios インターフェイスを使用して I/O 設定を変更します。
入力キー シーケンスを解析するための端末と terminfo インターフェイス。

シェル(Shell) オプション on 行編集
次のオプションは、行編集を有効にし、行編集を選択するために組み込みセットによって設定できます。
有効にする編集モード:

vi
vi モードをアクティブにします。

エマックス
emacs モードをアクティブにします。

その他の行編集関連のオプションは次のとおりです。

le-always-rp
このオプションを有効にすると、適切なプロンプトが常に表示されます。
正しいプロンプトに到達すると、元の位置から次の行に移動します。
そうしないと、入力テキストによって上書きされてしまいます。

ル-コンプ-デバッグ
有効にすると、完了時に内部情報が出力されます。
デバッグ完了スクリプト。

ルコンブメタ
有効にすると、各入力バイトの 8 番目のビットが常にメタキー フラグとして扱われます。
terminfo データに関係なく。

ル-no-conv-meta
有効にすると、各入力バイトの 8 番目のビットはメタキー フラグとして扱われなくなります。
terminfo データに関係なく。

le-conv-meta オプションと le-no-conv-meta オプションを同時に有効にすることはできません。いつ
どちらかが有効になると、もう一方は自動的に無効になります。どちらも有効になっていない場合、
terminfoデータによっては、8ビット目がメタキーフラグとして扱われる場合があります。

ルプロンプトsp
有効にすると、シェルは各文字を出力する前に特殊文字シーケンスを出力します。
すべてのプロンプトが行の先頭に出力されるようにプロンプ​​トを作成します。

このオプションはデフォルトで有効になっています。

ル・ビジブル・ベル
有効にすると、シェルは、アラームが鳴る代わりに端末を点滅させます。
アラートが必要です。

編集 モード
当学校区の vi モード vi エディターと同様のキー バインディングを提供する編集モードです。
vi モードには、編集中に切り替えられる 2 つのサブモードがあります。挿入モードとコマンドモードです。
モード。サブモードは、行編集が開始されると常に挿入モードにリセットされます。
新しいコマンドライン。挿入モードでは、ほとんどの文字が入力どおりにバッファに挿入されます。
コマンドモードでは、入力された文字はカーソルを移動するコマンドとして扱われ、
テキストの挿入/削除など。

当学校区の エマックス モード emacs エディタと同様のキー バインディングを提供します。ほとんどのキャラクターは、
入力どおりにバッファに挿入されますが、vi よりも多くの文字がコマンドとして扱われます。
挿入モード。

検索キーワードを入力するときに別のサブモードが使用されます。サブモードは
サーチ モード、アクティブな編集に応じてわずかに異なるキーバインドが提供されます。
モード。

行編集 コマンド
行編集がアクティブなときにユーザーが入力したすべての文字は行編集として扱われます。
以下にリストされているコマンド。ビルトインのbindkeyを使用すると、各キーのバインドをカスタマイズできます。
モード(検索モードを除く)。

以下のリストは、コマンドの機能だけでなく、デフォルトのキーバインドも示しています。
キーワード「vi-insert」、「vi-command」、「vi-search」、「emacs」、「emacs-search」は、vi を意味します。
挿入モード、vi コマンドモード、vi モードの検索モード (vi 検索モード)、
emacs モード、および emacs モードの検索モード (emacs 検索モード)、


一部のコマンドは、コマンドの機能に影響を与える引数を受け取ります。たとえば、
forward-char コマンドは、引数で指定された文字数だけカーソルを移動します。
引数を指定するには、別のコマンドの直前に digit-argument コマンドを使用します。
引数を取ります。

Basic 編集 コマンド
ヌープ
何もしない。

vi-コマンド
\^[

アラート
警告。

自己挿入
現在のカーソル位置に入力文字を挿入します。エスケープされた文字
エスケープシーケンスは挿入できません。

vi-挿入、emacs
\\

インサートタブ
現在のカーソル位置にタブ文字を挿入します。

エマックス
\^[\^私

逐語的に期待する
このコマンドの直後に入力された文字を現在のカーソルに挿入します
位置。このコマンドでは入力できない文字を入力することができます。
自己挿入コマンド (ヌル文字を除く) ('\0').

vi-insert、vi-search、emacs-search
\^V

エマックス
\^Q, \^V

数字引数
入力した数字を次のコマンドに引数として渡します。

このコマンドは数字またはハイフンにバインドできます。 「12」を引数として渡すには、
vi モードでの forward-char コマンド。たとえば、次のように入力します。 12l.

vi-コマンド
1, 2, 3, 4, 5, 6, 7, 8, 9

エマックス
\^[0, \^[1, \^[2, \^[3, \^[4, \^[5, \^[6, \^[7, \^[8, \^[9, \^[-,

ボルまたは数字
引数がない場合は行頭コマンドと同様です。以下のような
それ以外の場合は、数字引数コマンド。

vi-コマンド
0

受け入れライン
現在の行の編集を終了します。行には改行が自動的に追加されます。
この行はシェルによって実行されます。

vi-insert、vi-command、emacs、emacs-search
\^J, \^M

アボートライン
現在のバッファを破棄し、空行が入力されたかのように編集を終了します。

vi-insert、vi-command、vi-search、emacs、emacs-search
\!, \^C

eof
現在のバッファを破棄し、シェルが終わりに達したかのように編集を終了します。
入力。通常、これによりシェルが終了します。

空の場合の eof
バッファが空の場合は eof コマンドと同様です。それ以外の場合は、alert コマンドと同様です。

vi-挿入、vi-コマンド
\#, \^D

eof-or-delete
バッファが空の場合は eof コマンドと同様です。 delete-char コマンドと同様
さもないと。

エマックス
\#, \^D

ハッシュ付きで受け入れる
accept-line コマンドと似ていますが、次の点が異なります。

· ハッシュ記号 (#) がない場合は行頭に挿入されます。

· それ以外の場合、ハッシュ記号は行の先頭から削除されます。

vi-コマンド
#

エマックス
\^[#

setmode-viinsert
vi 挿入モードに切り替えます。

vi-コマンド
i, \I

setmode-viコマンド
viコマンドモードに切り替えます。

vi-挿入
\^[

setmode-emacs
emacs モードに切り替えます。

期待文字、中止期待文字
これらのコマンドは、ユーザーによる使用を目的としたものではありません。これらはシェルによって次の目的で使用されます。
他のコマンドを実装します。

再描画-すべて
プロンプトと現在の行を端末に再出力します。

vi-insert、vi-command、vi-search、emacs、emacs-search
\^L

すべてクリアして再描画
ターミナルをクリアし、プロンプトと現在の行を再印刷します。

モーション コマンド
モーション コマンド カーソルを行上に移動します。ほとんどのモーション コマンドは引数を受け入れます。
引数が渡されると、指定された回数だけカーソルの動きを繰り返します。
議論。たとえば、forward-char コマンドに引数として「4」を渡します。
カーソルを 4 文字進めます。

シェルには、距離の単位として単語の定義がいくつかあります。 ビッグワード XNUMXつまたは
より多くの隣接する非空白文字。あ セミワード 1 つ以上の隣接する文字です
空白や句読点が含まれていないもの。アン emacsword 1 つ以上隣接しています
英数字。あ ビワード どちらかです:

· 1 つ以上の隣接する英数字および/またはアンダースコア (_)、または

· 英数字を含まない 1 つ以上の隣接する文字、
アンダースコアと空白。

転送文字
カーソルを次の文字に移動します。

vi-挿入
\R

vi-コマンド
l、 (空間)、 \R

エマックス
\R, \^F

後方文字
カーソルを前の文字に移動します。

vi-挿入
\L

vi-コマンド
h, \B, \L, \?, \^H

エマックス
\L, \^B

前方ビッグワード
カーソルを次のビッグワードに移動します。

vi-コマンド
W

ビッグワードの終わり
カーソルをビッグワードの次の端に移動します。

vi-コマンド
E

後方ビッグワード
カーソルを前のビッグワードに移動します。

vi-コマンド
B

前方セミワード
カーソルを次の半単語に移動します。

セミワードの終わり
カーソルをセミワードの次の末尾に移動します。

逆方向セミワード
カーソルを前の半語に移動します。

フォワードビワード
カーソルを次の viword に移動します。

vi-コマンド
w

言葉の終わり
カーソルを viword の次の端に移動します。

vi-コマンド
e

逆方向ワード
カーソルを前の viword に移動します。

vi-コマンド
b

転送-emacsword
カーソルを次の emacsword に移動します。

エマックス
\^[f, \^[F

逆方向 emacsword
カーソルを前の emacsword に移動します。

エマックス
\^[b, \^[B

行頭
カーソルを行の先頭に移動します。

vi-挿入、vi-コマンド
\H

エマックス
\H, \^A

行末
カーソルを行末に移動します。

vi-挿入
\E

vi-コマンド
$, \E

エマックス
\E, \^E

列へ移動
カーソルをに移動します n行の 番目の文字、ここで n が引数です。仮定する
n 引数がない場合は = 1。

vi-コマンド
|

最初の非空白
カーソルを行上の最初の空白以外の文字に移動します。

vi-コマンド
^

検索文字
直後に入力された文字の最初の位置にカーソルを移動します。
このコマンドは、現在のカーソル位置の後に表示されます。

vi-コマンド
f

エマックス
\^]

検索文字-rev
直後に入力された文字の最後の位置にカーソルを移動します。
このコマンドは、現在のカーソル位置の前に表示されます。

vi-コマンド
F

エマックス
\^[\^]

ティルチャー
直前に入力した文字の直前の最初の位置にカーソルを移動します。
このコマンドの後は、現在のカーソル位置の後に表示されます。

vi-コマンド
t

まで-char-rev
直前に入力した文字の直後の最後の位置にカーソルを移動します
このコマンドが現在のカーソル位置の前に表示された後。

vi-コマンド
T

検索文字
最後の find-char、find-char-rev、til-char、til-char-rev コマンドをやり直します。

vi-コマンド
;

リファインド文字リビジョン
最後の find-char、find-char-rev、til-char、til-char-rev コマンドをやり直します。
逆方向。

vi-コマンド
,

編集 コマンド
編集コマンドはバッファの内容を変更します。ほとんどの編集コマンドは
口論。引数が渡されると、指定された回数だけ変更を繰り返します。
引数で指定します。

名前が「kill」で始まるコマンドによって削除されたテキストは、次の場所に保存されます。 kill リング、から
削除されたコンテンツをバッファに復元できます。最新の 32 件のテキストは次のとおりです。
キルリングに保管されます。

削除文字
引数が渡されない場合は、現在のカーソル位置にある文字を削除します。のように
それ以外の場合は kill-char コマンド。

vi-挿入、emacs
\X

削除ビッグワード
引数が渡されない場合は、現在のカーソル位置にあるビッグワードを削除します。以下のような
それ以外の場合は、kill-bigword コマンドを使用します。

セミワードの削除
引数が渡されない場合は、現在のカーソル位置にあるセミワードを削除します。のように
それ以外の場合は、kill-semiword コマンドを使用します。

削除-viword
引数が渡されない場合は、現在のカーソル位置にある viword を削除します。以下のような
それ以外の場合は、kill-viword コマンドを使用します。

削除-emacsword
引数が渡されない場合は、現在のカーソル位置にある emacsword を削除します。のように
それ以外の場合は、kill-emacsword コマンドを使用します。

後方削除文字
引数がない場合は、現在のカーソル位置の直前の文字を削除します。
合格した;それ以外の場合は、backward-kill-char コマンドと同様です。

vi-挿入、emacs
\B, \?, \^H

逆方向削除ビッグワード
引数が渡されない場合は、現在のカーソル位置の直前にあるビッグワードを削除します。
それ以外の場合は、backward-kill-bigword コマンドと同様です。

逆方向削除セミワード
引数が指定されていない場合は、現在のカーソル位置の直前のセミワードを削除します。
合格した;それ以外の場合は、backward-kill-semiword コマンドと同様です。

vi-挿入
\^W

逆方向削除-viword
引数が渡されない場合は、現在のカーソル位置の直前にある viword を削除します。
それ以外の場合は、backward-kill-viword コマンドと同様です。

逆方向削除-emacsword
引数がない場合は、現在のカーソル位置の直前に emacsword を削除します。
合格した;それ以外の場合は、backward-kill-emacsword コマンドと同様です。

削除行
バッファの内容全体を削除します。

前方削除行
現在のカーソル位置からバッファの末尾までのすべての文字を削除します。

逆方向削除行
現在のカーソル位置より前の文字をすべて削除します。

vi-挿入
\$, \^U

キルチャー
現在のカーソル位置にある文字を削除し、キルリングに追加します。

vi-コマンド
x, \X

ビッグワードを殺す
現在のカーソル位置にあるビッグワードを削除し、キル リングに追加します。

キルセミワード
現在のカーソル位置にあるセミワードを削除し、キルリングに追加します。

キルビワード
現在のカーソル位置にある viword を削除し、キル リングに追加します。

kill-emacsword
現在のカーソル位置にある emacsword を削除し、キルリングに追加します。

エマックス
\^[d, \^[D

逆方向キル文字
現在のカーソル位置の直前の文字を削除し、それをキルに追加します。
リング。

vi-コマンド
X

逆方向-キル-ビッグワード
現在のカーソル位置の直前にあるビッグワードを削除し、それをキルに追加します。
リング。

エマックス
\^W

逆方向キルセミワード
現在のカーソル位置の直前のセミワードを削除し、それを kill に追加します。
リング。

逆方向-kill-viword
現在のカーソル位置の直前の viword を削除し、kill に追加します。
リング。

逆方向-kill-emacsword
現在のカーソル位置の直前に emacsword を削除し、kill に追加します。
リング。

エマックス
\^[\B, \^[\?, \^[\^H

キルライン
バッファーの内容全体を削除し、キルリングに追加します。

フォワードキルライン
現在のカーソル位置からバッファの最後までのすべての文字を削除します
そしてそれをキルリングに追加します。

エマックス
\^K

後方キルライン
現在のカーソル位置より前のすべての文字を削除し、kill に追加します。
リング。

エマックス
\$, \^U, \^X\B, \^X\?

前に置く
現在のカーソル位置の前に最後にキルされたテキストを挿入し、カーソルを移動します
挿入された最後の文字まで。

vi-コマンド
P

置きます
現在のカーソル位置の後に最後にキルされたテキストを挿入し、カーソルを移動します
挿入された最後の文字まで。

vi-コマンド
p

左に置く
現在のカーソル位置の前に最後にキルされたテキストを挿入し、カーソルを移動します
挿入された最後の文字まで。

エマックス
\^Y

ポップポップ
挿入したばかりのテキストを、次に古い強制終了されたテキストに置き換えます。

このコマンドは、put-before、put、put-left、または put-pop の直後にのみ使用できます。


エマックス
\^[y, \^[Y

取り消す
最後の編集コマンドによる変更をキャンセルします。

vi
u

エマックス
\^_, \^X\$, \^X\^U

すべてを元に戻す
現在のバッファ内のすべての変更をキャンセルし、初期の内容を復元します。

vi
U

エマックス
\^[\^R, \^[r, \^[R

キャンセル-元に戻す
最後の元に戻すまたはすべてを元に戻すコマンドによるキャンセルをキャンセルします。

vi
\^R

キャンセル-すべてを元に戻す-
最新のすべての元に戻すコマンドおよびすべてを元に戻すコマンドによるすべてのキャンセルをキャンセルします。

やり直し
最後の編集コマンドによる変更を繰り返します。

vi-コマンド
.

完成 コマンド
コンプリート
カーソル位置の直前に単語を完成させます。単語が複数ある場合は、
候補者、候補者のリストを表示します。

完了-次の候補
候補がリストされていない場合の完全なコマンドと同様です。それ以外の場合は、選択してください
リストの次の候補者。

vi-挿入、emacs
\^私

完全-前-候補
候補がリストされていない場合の完全なコマンドと同様です。それ以外の場合は、選択してください
リストの前の候補。

vi-挿入、emacs
\bt

完全な次の列
候補がリストされていない場合の完全なコマンドと同様です。それ以外の場合は、選択してください
リストの次の列の最初の候補。

完全な前の列
候補がリストされていない場合の完全なコマンドと同様です。それ以外の場合は、選択してください
リストの前の列の最初の候補。

完了-次のページ
候補がリストされていない場合の完全なコマンドと同様です。それ以外の場合は、選択してください
リストの次のページの最初の候補。

完全な前のページ
候補がリストされていない場合の完全なコマンドと同様です。それ以外の場合は、選択してください
リストの前のページの最初の候補。

完全なリスト
カーソル位置の直前に単語を完成させます。

引数を渡さない場合は、補完候補のリストが表示されます。それ以外の場合は、
単語は次で完成します n番目の候補者はどこですか n が引数です。

エマックス
\^[?, \^[=

完全にすべて
カーソル位置の直前の単語を可能な限り完全に置換します。
候補はそれぞれスペースで区切られます。

エマックス
\^[*

コンプリートマックス
カーソル位置の直前に、すべての中で最も長い接頭辞を付けて単語を完成させます
可能な完了候補。

明確な候補者
完了候補リストをクリアします。

Vi 固有 コマンド
vi-replace-char
カーソル位置の文字を直前に入力した文字に置き換えます
このコマンドの後。

vi-コマンド
r

vi-挿入-始まり
カーソルを行頭に移動し、vi 挿入モードに切り替えます。

vi-コマンド
I

vi-追加
カーソルを次の文字に移動し、vi 挿入モードに切り替えます。

vi-コマンド
I

vi-append-to-eol
カーソルを行末に移動し、vi 挿入モードに切り替えます。

vi-コマンド
A

vi-置換
vi挿入モードに切り替えて上書きを開始します。上書き中は、
self-insert コマンドは、カーソル位置の文字を置換します。
文字を挿入します。編集モードを変更すると上書きは終了します。

vi-コマンド
R

vi-スイッチケース
現在のカーソル位置と次のカーソル位置の間で文字の大文字と小文字を切り替えます。これ
コマンドの後には、次のカーソルを決定するモーション コマンドを続ける必要があります。
位置。

vi-switch-case-char
現在のカーソル位置の文字の大文字と小文字を切り替えて、カーソルを
次のキャラクター。

vi-コマンド
~

ヴィヤンク
現在のカーソル位置と次のカーソル位置の間の文字をキルリングに追加します。
このコマンドの後には、次の動作を決定するモーション コマンドを続ける必要があります。
カーソルの位置。

vi-コマンド
y

vi-yank-to-eol
現在のカーソル位置から末尾までの文字をキルリングに追加します。
この線。

vi-コマンド
Y

vi-削除
現在のカーソル位置と次のカーソル位置の間の文字を削除し、
キルリング。このコマンドの後にはモーション コマンドを続ける必要があります。
次のカーソル位置。

vi-コマンド
d

vi-delete-to-eol
現在のカーソル位置から行末までの文字を削除し、
キルリングに追加します。

vi-コマンド
D

vi-チェンジ
現在のカーソル位置と次のカーソル位置の間の文字を削除し、次のカーソル位置に切り替えます。
vi挿入モード。このコマンドの後にはモーション コマンドを続ける必要があります。
次のカーソル位置を決定します。

vi-コマンド
c

vi-change-to-eol
現在のカーソル位置から行末までの文字を削除し、
vi挿入モードに切り替えます。

vi-コマンド
C

vi-変更ライン
バッファーの内容全体を削除し、vi 挿入モードに切り替えます。

vi-コマンド
S

vi-yank-and-change
vi-change コマンドと似ていますが、削除されたテキストはキル リングに追加されます。

vi-yank-and-change-to-eol
vi-change-to-eol コマンドと似ていますが、削除されたテキストはキル リングに追加されます。

vi-yank-and-change-line
vi-change-line コマンドと似ていますが、削除されたテキストはキル リングに追加されます。

vi-代替品
現在のカーソル位置にある文字を削除し、それをキルリングに追加し、
vi挿入モードに切り替えます。

vi-コマンド
s

vi-append-last-bigword
最新のコマンド履歴エントリにスペースと最後のビッグワードを挿入します。
現在のカーソル位置の後に移動し、vi 挿入モードに切り替えます。 If 引数 n
渡される、 nエントリ内の最後のビッグワードの代わりに挿入されます。

vi-コマンド
_

vi-exec-エイリアス
という名前のエイリアスの値を実行します。 _c 編集コマンドとして c キャラクターです
このコマンドの直後に入力してください。

vi-コマンド
@

vi-編集して受け入れる
vi エディタを起動して、現在のバッファの内容を編集します。エディターが終了すると、
編集されたバッファの内容は、accept-line コマンドと同様に受け入れられます。
エディタの終了ステータスがゼロ以外です。

vi-コマンド
v

vi-完全なリスト
complete-list コマンドと同様ですが、vi 挿入モードにも切り替えます。

vi-コマンド
=

vi-完全-すべて
complete-all コマンドと同様ですが、vi 挿入モードにも切り替えます。

vi-コマンド
*

vi-complete-max
complete-max コマンドと同様ですが、vi 挿入モードに切り替えます。

vi-コマンド
\\

vi-検索-前方
vi 検索モードに切り替えて、前方履歴検索を開始します。

vi-コマンド
?

vi-検索-後方
vi 検索モードに切り替えて、後方履歴検索を開始します。

vi-コマンド
/

Emacs 固有 コマンド
emacs-transpose-chars
カーソルの直前の文字を右に移動します。

エマックス
\^T

emacs-transpose-words
emacsword をカーソルの直前に右に移動します。

エマックス
\^[t, \^[T

emacs-downcase-word
カーソルの直後の emacsword を小文字にします。

エマックス
\^[l, \^[L

emacs-大文字の単語
カーソルの直後の emacsword を大文字にします。

エマックス
\^[u, \^[U

emacs-大文字化-単語
カーソルの直後の emacsword の最初の文字を大文字にします。

エマックス
\^[c, \^[u

emacs-delete-horizo​​ntal-space
カーソルの周囲のスペースを削除します。引数が渡された場合は、スペースだけを削除します
カーソルの前のみ。

エマックス
\^[\\

emacs-just-one-space
カーソルの周囲のスペースを削除し、スペースを 1 つ残します。引数を指定した場合、
引数と同じ数のスペースを残します。

エマックス
\^[ (エスケープの後にスペースを入力)

emacs-検索順方向
emacs 検索モードに切り替えて、前方履歴検索を開始します。

エマックス
\^S

emacs-検索-逆方向
emacs 検索モードに切り替えて、後方履歴検索を開始します。

エマックス
\^R

歴史関連 コマンド
最古の歴史
歴史の中で最も古いエントリを思い出してください。 If 引数 n が渡されると、そのエントリが
番号は n 代わりにリコールされます。カーソルの位置は変わりません。

最新の履歴
履歴の最新のエントリを思い出してください。 If 引数 n が渡されると、そのエントリが
番号は n 代わりにリコールされます。カーソルの位置は変わりません。

返品履歴
既存の履歴エントリに対応しない初期バッファに戻ります。もし
引数 n が渡されると、その番号のエントリが n 代わりにリコールされます。カーソル
順位は変わらず。

最古の歴史-ボル
履歴内の最も古いエントリを呼び出し、カーソルを履歴の先頭に移動します。
ライン。 If 引数 n が渡されると、その番号のエントリが n 代わりにリコールされます。

vi-コマンド
G

最新履歴ボル
履歴内の最新のエントリを呼び出し、カーソルを履歴の先頭に移動します。
ライン。 If 引数 n が渡されると、その番号のエントリが n 代わりにリコールされます。

戻り履歴ボル
既存の履歴エントリに対応しない初期バッファに戻り、
カーソルを行の先頭に移動します。 If 引数 n エントリが渡されると、
誰の番号ですか n 代わりにリコールされます。

vi-コマンド
g

最古の歴史
履歴内の最も古いエントリを呼び出し、カーソルを行の末尾に移動します。
If 引数 n が渡されると、その番号のエントリが n 代わりにリコールされます。

エマックス
\^[

最新履歴-過去
履歴内の最新のエントリを呼び出し、カーソルを行の末尾に移動します。
If 引数 n が渡されると、その番号のエントリが n 代わりにリコールされます。

戻り履歴-eol
既存の履歴エントリに対応しない初期バッファに戻り、
カーソルを行末に移動します。 If 引数 n が渡されると、そのエントリが
番号は n 代わりにリコールされます。

エマックス
\^[>

次の歴史
次の履歴エントリを呼び出します。カーソルの位置は変わりません。

以前の履歴
前の履歴エントリを思い出してください。カーソルの位置は変わりません。

次の履歴-ボル
次の履歴エントリを呼び出し、カーソルを行の先頭に移動します。

vi-コマンド
j, +, \D, \^N

前履歴ボル
前の履歴エントリを呼び出し、カーソルを履歴エントリの先頭に移動します。
ライン。

vi-コマンド
k, -, \U, \^P

次の履歴-eol
次の履歴エントリを呼び出し、カーソルを行の末尾に移動します。

vi-挿入、emacs
\D, \^N

前履歴-Eol
前の履歴エントリを呼び出し、カーソルを行の末尾に移動します。

vi-挿入、emacs
\U, \^P

もう一度検索
最後のコマンド履歴検索を繰り返します。

vi-コマンド
n

再検索-rev
最後のコマンド履歴検索を逆方向に繰り返します。

vi-コマンド
N

再検索、前方検索
最後のコマンド履歴検索を順方向に繰り返します。

再度後方検索
最後のコマンド履歴検索を逆方向に繰り返します。

開始-検索-前方へ
のテキストと同じテキストで始まる次の履歴エントリを呼び出します。
行の先頭から現在のカーソル位置まで。カーソル位置
変更されません。

開始-検索-後方
のテキストと同じテキストで始まる以前の履歴エントリを呼び出します。
行の先頭から現在のカーソル位置まで。カーソル位置
変更されません。

検索 モード コマンド
srch-自己挿入
現在のカーソル位置に入力文字を挿入します。エスケープされた文字
エスケープシーケンスは挿入できません。

vi-検索、emacs-検索
\\

srch-backward-delete-char
検索テキストの最後の文字を削除します。テキストが空の場合:

· vi 検索モードの場合の srch-abort-search コマンドと同様、または

· emacs検索モード時のalertコマンドと同様。

vi-検索、emacs-検索
\B, \?, \^H

srch-backward-削除行
検索テキスト全体を削除します。

vi-検索、emacs-検索
\$, \^U

srch-Continue-forward
次に一致する履歴エントリを見つけます。

emacs-検索
\^S

srch-Continue-Backward
以前の一致履歴エントリを検索します。

emacs-検索
\^R

srch-accept-search
表示された結果を受け入れて、検索モードを終了します。

vi-検索
\^J, \^M

emacs-検索
\^J, \^[

srch-中止-検索
検索を中止し、以前のバッファの内容を復元します。

vi-検索
\^[

emacs-検索
\^G

エスケープ シーケンス
バインドキー組み込みでは、エスケープ シーケンスを使用して次のような特殊キーを表します。
ファンクションキーと矢印キー。すべてのエスケープ シーケンスはバックスラッシュ (\) したがって
バックスラッシュ自体のエスケープ シーケンスもあります。

利用可能なエスケープ シーケンスは次のとおりです。

\\
バックスラッシュ (\)

\B
バックスペース

\D
下向き矢印

\E
終わり

\H
ホーム

\I
挿入 (文字の挿入、挿入モードの開始)

\L
左矢印

\N
ページダウン (次のページ)

\P
ページアップ (前ページ)

\R
右矢印

\U
上矢印

\X
削除

\!
NRTI

\#
EOF

\$
KILL

\?
ERASE

\^@
Ctrl + @

\^A, \^B……、 \^Z
Ctrl + A、Ctrl + B、...、Ctrl + Z

Ctrl + I、Ctrl + J、および Ctrl + M はタブ、改行、キャリッジ リターンであることに注意してください。


\^[
Ctrl + [ (エスケープ)

\^\
Ctrl + \

\^]
Ctrl +]

\^^
Ctrl + ^

\^_
Ctrl+_

\^?
Ctrl + ? (消去)

\F00, \F01……、 \F63
F0、F1、...、F63

\a1
キーパッドの左上

\a3
キーパッドの右上

\b2
キーパッドの中心

\bg
開始

\bt
バックタブ

\c1
キーパッドの左下

\c3
キーパッドの右下

\ca
すべてのタブをクリア

\cl
閉じる

\cn
キャンセル

\co
Command

\cp
コピー

\cr
創造する

\cs
画面のクリアまたは消去

\ct
クリアタブ

\dl
行の削除

\ei
挿入モードの終了

\el
行末までクリア

\es
画面の最後までクリア

\et
入力(送信)

\元
出口

\fd
もう完成させ、ワークスペースに掲示しましたか?

\hp
カスタマーサービス

\il
挿入行

\ ll
ホームダウン

\自分
お問い合わせ内容

\mk
Mark Hodder

\MS
マウスイベント

\mv
移動

\nx
次のオブジェクト

\の上
店は開いています

\op
オプション

\pr
印刷(コピー)

\pv
前のオブジェクト

\rd
やり直し

\re
履歴書

\rf
Ref (リファレンス)

\rh
Refresh

\rp
交換する

\rs
再起動

\sf
前方にスクロール (下にスクロール)

\sl
選択する

\sr
逆方向にスクロール (上にスクロール)

\st
タブを設定する

\su
サスペンド

\sv
Save

\ud
アンドゥ

\SE
シフト + エンド

\SH
Shift +ホーム

\SI
Shiftキー+挿入

\SL
Shift + 左矢印

\SR
Shift + 右矢印

\SX
Shiftキー+ Deleteを

\Sbg
シフト + 先頭

\Scn
シフト + キャンセル

\スコ
Shift + コマンド

\Scp
Shift + コピー

\Scr
Shift + 作成

\Sdl
Shift + 行削除

\Sel
Shift + 行末

\セックス
Shift + 終了

\SFD
Shift + 検索

\Shp
Shift + ヘルプ

\Smg
シフト + メッセージ

\Smv
Shift + 移動

\Snx
Shift + 次へ

\ソップ
Shift + オプション

\春
Shift + 印刷

\Spv
Shift + 前へ

\Srd
Shift + やり直し

\スレ
シフト + 再開

\Srp
シフト + 置換

\ッス
シフト + 一時停止

\Ssv
Shift + 保存

\シュッド
Shift + 元に戻す

INTR、EOF、KILL、および ERASE は、stty コマンドによって設定される特殊文字です。で
一般的な構成では、Ctrl+C、Ctrl+D、Ctrl+U、および Ctrl+H を入力して送信されます。
それぞれ、ただし、一部の構成では Ctrl+? を使用します。 Ctrl+H の代わりに ERASE を実行します。

Command ライン 完成
completeコマンドやcomplete-next-candidateコマンドなどを使用することで、コマンドを完了させることができます。
名前、オプション、オペランド。デフォルトでは、complete-next-candidate コマンドはバインドされています。
vi 挿入モードおよび emacs モードで Tab キーを使用します。

コマンド名またはパス名の最初の数文字を入力して Tab キーを押すと、コマンドのリストが表示されます。
一致する名前が表示されます。リストから候補者を選択して、完了することができます
Tab キーをもう一度押して名前を付けます。一致する名前が 1 つだけの場合、リストは表示されません。
と表示され、名前が直接完成します。

完成する名前に次のような文字が含まれている場合 *   ?、パターンとして扱われます。
コマンドライン上の名前は、一致する可能性のあるすべての名前で直接置換されます。
パターン(リストから選択することはできません)。

通常、コマンド名はコマンド名で補完され、コマンド引数は次のように補完されます。
パス名。しかし、 完成 機能 完了結果を調整するために定義できます。

完成 details
シェル起動後、初めて補完を行う場合、INIT
ファイルはコマンド文字列のようにロードされます . -アル 完了/初期化 が実行されます。ファイルの場合
見つからない場合は、黙って無視されます。この自動読み込みは主に次の目的で使用されます。
ロード完了関数はシェルにバンドルされていますが、シェルにロードさせることもできます
ロードパスにファイルを置くことで独自の機能を追加できます。

コマンド名を完成させると、シェルは 完了//コマンド function
コマンド引数を完成させるとき、 完了//引数 関数。もしそれらが
補完関数は定義されておらず、シェルはコマンド名またはコマンド名で補完するだけです。
パス名。チルダ展開のユーザー名など、他の名前を入力するときは、
パラメータ展開のパラメータ名、補完関数は決して使用されません。
シェルには、ユーザー名、パラメータ名、その他該当するものを入力するだけです。

補完関数は引数なしで実行されます。以下のローカル変数
補完関数の実行中に自動的に定義されます。

IFS
値はスペース、タブ、改行の 3 文字です。
変数のデフォルト値。

WORDS
この変数は、要素がコマンド名と引数である配列です。
引数が完了する前にすでに入力されています。完了するとき
コマンド名、配列には要素がありません。

ターゲットワード
値は、部分的に入力されたコマンド名または引数です。
完了しました。

完了候補は、実行中に完全な組み込みを実行することによって生成されます。
完了機能。

補完関数は端末への I/O を実行してはなりません。実行しないと、表示されるテキストが表示されます。
破損しています。より良いユーザーのために、補完関数はできるだけ早く実行される必要があります。
経験。

完了関数の実行中:

· POSIXly-correct モードは一時的に無効になります。

· err-exit オプションは一時的に無効になっており、

· トラップは実行されません。

確実に正しい モード


Yash は、大部分が POSIX.1-2008 のシェルとユーティリティで定義されているとおりに動作しますが、一部の
機能は使いやすさに関して POSIX に準拠していません。完全な POSIX 準拠が必要な場合は、
を有効にすることができます POSIX的に正しい モード yash を可能な限り POSIX に従わせるためです。

yash を「sh」という名前で起動すると、POSIXly 正しいモードが自動的に有効になります。
当学校区の -o 確実に正しい コマンドライン オプションも POSIXly-correct モードを有効にします。後
yash が開始されている場合は、次のコマンドを実行することで POSIX 的に正しいモードを有効にできます。
string セッションに -o 確実に正しい.

POSIXly-correct モードがオンの場合、yash は要件に従おうとするだけでなく、
POSIX ですが、動作が異なるほとんどの条件もエラーとして扱います。 未定義 or
不特定 POSIXによる。その結果、ほとんどの yash 固有の機能は、
POSIX 的に正しいモード。

以下は、yash が
POSIX 的に正しいモードとそうでない場合。 POSIXly-correct モードが有効な場合:

· 異なる初期化スクリプトが使用されます。

· グローバル エイリアスは置換されません。

· 複合コマンド内のネストされたコマンドは空であってはなりません。

· for ループ内で展開された単語は、ローカル変数ではなくグローバル変数として割り当てられます。
変数には移植可能な (ASCII のみ) 名前が必要です。セミコロンの前 do
なしで表示されます in 変数名の後に。

· case コマンドの最初のパターンは使用できません。 ESAC.

function キーワードは関数定義には使用できません。関数には
ポータブル (ASCII のみ) 名。

· 単純なコマンドは配列に代入できません。

· の値を変更する LC_CTYPE シェルが初期化された後の変数は、
シェルのロケールには影響しません。

RANDOM 変数を使用して乱数を生成することはできません。

・チルダ展開は展開のみ ~   ~ユーザ名.

· パラメータ展開はネストできません。インデックスは許可されません。

· 次の形式のコマンド置換のコマンド $(コマンド) 毎回解析される
置換が実行されます。

· 算術展開では、分数と ++   -- 演算子はできません
使用済み。すべての変数は数値である必要があります。

· ファイルへのリダイレクトで、パス名展開により複数のパス名が生成された場合、または何も生成されなかった場合
pathname を指定しても、すぐにはエラーとして扱われません。代わりに、シェルは処理を試みます。
展開前の単語をパス名として指定します。

· ソケットのリダイレクト、ここでは文字列、パイプのリダイレクト、およびプロセスのリダイレクトはできません。
中古。

・単純なコマンドを実行する場合、コマンド検索に失敗しても実行がトリガーされない
COMMAND_NOT_FOUND_HANDLER 変数に保存します.

· コマンド検索では、通常の組み込みには対応する外部コマンドが必要です
組み込みを見つけるために。

· 非同期コマンドは、ジョブ制御が無効になっている場合でも、SIGINT 信号と SIGQUIT 信号を無視します。
アクティブ。非同期コマンドの標準入力は、/dev/null にリダイレクトされます。
ジョブ制御がアクティブであるかどうかに関係なく、シェルは対話型ではありません。

· 一部の組み込みの動作が異なります。特に、一部のコマンドライン オプションは使用できません。
中古。

· 特別な組み込みに構文的に間違ったパラメータが与えられると、非対話型シェルが終了します。
引数、または特殊な関数による代入またはリダイレクトでエラーが発生したとき
内蔵しています。

· 対話型シェルは、 プロンプト_コマンド を印刷する前の変数
プロンプト。の値 PS1, PS2, PS4 変数は異なる方法で解析されます。

・メールチェックでは、ファイルが変更されている場合は通知メッセージが出力されます。
ファイルが空かどうかは関係ありません。

頻繁に 尋ねた 質問 そして トラブルシューティング


当学校区の デフォルト プロンプト is あまりに 単純...
yashrc ファイルがなければ、yash は生の POSIX シェルとほぼ同じです。サンプルのyashrcを入れます
ホームディレクトリ (~/.yashrc)お好みに合わせてカスタマイズしてください。

認定条件 できる I つかいます Unicode (非ASCII) 文字?
Unicode 文字のサポートを有効にするには、ロケール環境変数を設定する必要があります。

変数がすでに好みに合わせて設定されている場合は、おそらく設定されていないでしょう。
何をするにも。現在のロケール設定を確認するには、 ローカル
コマンド:

$ロケール
LANG=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8

この例では、 ローカル コマンドは、すべてのロケール設定カテゴリが
英語、米国地域、および UTF-8 エンコーディング用に構成されています。

現在の構成が好みと一致しないと思われる場合は、 LC_ALL
このような変数:

LC_ALL=en_US.utf8 をエクスポート

他の言語、地域、またはエンコーディングを使用したい場合は、変数を次のように設定する必要があります。
異なる値。これらの設定方法については、OS のドキュメントを参照してください。
変数の詳細。

yash を起動するたびに同じ設定を適用したい場合は、次のコマンドを記述します。
in ~/.yashrc or ~/.yash_profile.

それでも yash が Unicode 文字の入力を拒否する場合は、以下のセクションを参照してください。
行編集。

行編集 ありません
まず、 echo $ TERM が印刷されるかどうかを確認してください 健全な の値です。 xterm 最も安全な値は
既存の環境で動作するはずです。カラーバージョンのような xterm-16カラー およびその他の
のような端子タイプ rxvt   vt100 も機能するかもしれません。すべての可能な値は、次の方法でリストできます。
つま先 指示。実際の端末の種類に一致する値を選択することが最も望ましいです
を使用していますが、選択した端末の種類がサポートされていない場合は機能しない可能性があります。
yash が実行されているシステム。その場合は、変更してみてください TERM による値 export
TERM=xtermたとえば、機能する値を見つけるためです。

行編集は機能するが、Unicode (非 ASCII) 文字の入力に問題がある場合は、次のことを試してください。
le-no-conv-meta オプションを有効にする セッションに -o ル-no-conv-meta.

丁寧 定義 OF COMMAND 構文


この章では、シェル コマンドの構文を解析式文法として定義します。

文法の終端の集合とは、文法上で扱える文字の集合です。
例外を除いて、シェルが実行される環境 (別名実行文字セット)
セットに null 文字 ('\0').

以下は、文法の非終端語と対応する解析式のリストです。の
リストには、ヒアドキュメントの内容と末尾を解析するためのルールは含まれていません。の中に
POSIX 的に正しいモード。非 POSIX を無効にするための文法は以下のリストとは異なります。
機能性。

完全なコマンド
シーケンスEOF

シーケンス
N* リスト*

リスト
パイプライン ((&& / ||) N* パイプライン)* ListSeparator

パイプライン
バン?指示 (|N* コマンド)*

Command
CompoundCommandRedirection* /

!R関数定義 /

!R シンプルコマンド

複合コマンド
サブシェル / グループ化 / IfCommand / ForCommand / WhileCommand / CaseCommand /
関数コマンド

サブシェル
(シーケンス)S*

グループ化
左ブレースシーケンス右ブレース

Ifコマンド
IfSequenceThen シーケンス (Elif シーケンス then シーケンス)* (Else シーケンス)?フィ

コマンド用
ForNameS* 区切り文字? (InWord* 区切り文字)?実行シーケンス完了

Whileコマンド
(その間 / まで) SequenceDo シーケンス完了

ケースコマンド
CaseWordN* In N* CaseItem* Esac

ケースアイテム
!イーサック ((す*)?言葉 (| 剣)* )順序 (;; /&Esac)

関数コマンド
関数ワード ((S* ))? N* CompoundCommandRedirection*

関数定義
名前* ( S* )N* CompoundCommandRedirection*

シンプルコマンド
&(ワード / リダイレクト) (代入 / リダイレクト)* (ワード / リダイレクト)*

譲渡
お名前=言葉 /

お名前 =(N* (単語 N*)* )

お名前
![[:digit:]] [[:alnum:] _]+

ポータブル名
![0-9] [0-9ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_]+

Word
(WordElement / !SpecialChar .)+ S*

Word要素
\ 。 / ' (!' 。)* ' / "引用要素* " / パラメータ / 算術演算 / CommandSubstitution

引用要素
\ ([$`"\] / NL) / パラメータ / 算術演算 / CommandSubstitution /

![`"\]。


$ [@*#?-$! [:数字:]] / $ポータブル名 / $パラメータ本体

パラメータ本体
{パラメータ番号? (パラメータ名 / パラメータ本体 / パラメータ) パラメータインデックス?
パラメータ一致? }

パラメータ番号
# ![+=:/%] !([-?#] })

パラメータ名
[@*#?-$!] /

[[:アルバム:] _]+

パラメータインデックス
[ParameterIndexWord (, ParameterIndexWord)? ]

パラメータインデックスワード
(WordElement / ![「」]、] .)+

パラメータの一致
:? [-+=?] パラメータマッチワード /

(# / ## / % / %%) パラメータマッチワード /

(:/ / / [#%/]?) ParameterMatchWordNoSlash (/ ParameterMatchWord)?

パラメータマッチワード
(WordElement / !["'}] .)*

ParameterMatchWordNoSlash
(WordElement / !["'/}] .)*

算術
$((算術本体* ))

算術本体
\ 。 / パラメータ / 算術演算 / CommandSubstitution / ( 算術本体 ) /

![`()]。

コマンド置換
$(シーケンス) / `コマンド置換本体* `

コマンド置換本体
\ [$`\] /

!` .

リダイレクション
RedirectionFDRedirectionOperatorS* Word /

リダイレクションFD <(シーケンス) /

リダイレクションFD >( シーケンス )

リダイレクションFD
[[:桁:]]*

リダイレクト演算子
< / <> / > / >| / >> / >> | / <& / >& / << / <<- / <<

リストセパレータ
セパレータ / &N* /

&) /

&;;

セパレータ
;N* / N+ / EOF

N
S*NL

S
[[:blank:]] / コメント

コメント
# (!NL .)*

R
Bang / LeftBrace / RightBrace / Case / Do / Done / Elif / Else / Esac / Fi / For / If
/ 中に / それから / まで / その間

バン
!D

左ブレース
{D

右ブレース
}D

シミュレーション例
場合D

Do
doD

クリックします
行われD

ELIF
elifD


ほかにD

エサック
ESACD

Fi
fiD


D

演算
functionD

If
ifD

In
inD

その後
その後D

まで
までD

一方、
whileD

D
!ワードS*

スペシャルチャー
[|&;<>()`\"' [:blank:]] / NL

NL


EOF
!.

ALIAS BUILT-IN


当学校区の alias 内蔵 エイリアスを定義および/または出力します。

構文
· alias [-gp] [[=] ...]

詳細説明
エイリアス組み込みは、オペランドで指定されたとおりにエイリアスを定義および/または出力します。印刷された
エイリアスはシェル コマンド (の一部) として使用できます。組み込みは現在定義されているすべてを出力します
オペランドを指定しない場合のエイリアス。

オプション
-g, - グローバル
このオプションを使用すると、エイリアスはグローバル エイリアスとして定義されます。このオプションを使用しないと、
通常の別名。

-p, --prefix
このオプションを使用すると、エイリアスは次のような完全なコマンド形式で出力されます。 alias -g foo='バー'.
このオプションを使用しないと、コマンド オペランドのみが次のように出力されます。 foo='バー'.

オペランド

出力する別名の名前。

=
定義されているエイリアスの名前と値。

出口 status
エラーがない限り、エイリアス組み込みの終了ステータスは 0 です。

Notes
エイリアス名に使用できない文字は、スペース、タブ、改行、および
of =$<>\'"`;&|()#。エイリアス値には任意の文字を使用できます。

エイリアス組み込みは、準特殊な組み込みです。

POSIX 標準では、組み込みエイリアスのオプションが定義されていないため、オプションはありません。
POSIX 的に正しいモードで使用できます。

アレイ BUILT-IN


当学校区の 配列 内蔵 配列を出力または変更します。

構文
· 配列

· 配列 [...]

· 配列 -d [index...]

· 配列 -i index [...]

· 配列 -s index

詳細説明
オプションやオペランドを指定せずに実行すると、組み込み関数はすべての配列定義を出力します。
コマンドとして解析できる形式の標準出力。

で実行すると   s (ただしオプションなし)、ビルトインは s
という名前の配列の値として .

-d (- 消去) オプションを使用すると、組み込みにより indexという名前の配列の 番目の値
。配列内の値の数は、 indexes
指定。 もし index番目の値は存在しないため、黙って無視されます。

-i (- 入れる) オプション、組み込みインサート という名前の配列に s を入れます を選択します。
配列内の値の数は、 指定されています。の
値は、 index番目と次の値。もし index がゼロの場合、値は
最初の値の前に挿入されます。もし index の値の数よりも大きいです
配列の場合、値は最後の要素の後に追加されます。

-s (- 設定) オプション、組み込みセット として index配列の 番目の値
命名 。配列には少なくとも index 値。

オプション
-d, - 消去
配列の値を削除します。

-i, - 入れる
配列値を挿入します。

-s, - 設定
配列の値を設定します。

オペランド

操作する配列の名前。

index
配列要素のインデックス。最初の要素のインデックスは 1 です。


配列要素が設定される文字列。

出口 status
エラーがない限り、組み込み配列の終了ステータスは 0 です。

Notes
組み込み配列は POSIX 標準では定義されていません。

コマンド 配列 ... 割り当てと同等です =(...).

BG BUILT-IN


当学校区の bg 内蔵 バックグラウンドでジョブを再開します。

構文
· bg [ジョブ...]

詳細説明
bg ビルトインは、指定されたジョブに SIGCONT シグナルを送信します。結果として、その仕事は、
バックグラウンドで再開されます (一時停止されている場合)。

ジョブが再開されると、ジョブの名前が印刷されます。

ビルトインは、ジョブ制御が有効な場合にのみ使用できます。

オペランド
ジョブ
再開するジョブのジョブID。

一度に複数のジョブを指定できます。何もない場合は、現在のジョブが再開されます。
指定。

パーセント記号 (%) シェルがそうでない場合、ジョブ ID の先頭にあるのは省略できます。
POSIX 的に正しいモードで。

出口 status
エラーがない限り、bg ビルトインの終了ステータスは 0 です。

Notes
bg ビルトインは、準特殊なビルトインです。

POSIX 標準では、ジョブがすでに実行されている場合、組み込み関数は効果を持たないと規定しています。
ランニング。ただし、yash の bg 組み込みは常に SIGCONT シグナルをジョブに送信します。

バインドキー BUILT-IN


当学校区の バインドキー 内蔵 行編集で使用されるキー バインドを印刷または変更します。

構文
· バインドキー -aev [キー [ command]]

· バインドキー -l

詳細説明
で実行すると、 -l (- リスト) オプション、組み込みは利用可能なすべての行編集をリストします。
コマンドを標準出力に出力します。

他のオプションのいずれかを使用して実行すると、組み込み関数はキー バインディングを出力または変更します。
オプションで指定された編集モードの場合:

・ それなし キー or command、現在定義されているすべてのバインディングが標準に出力されます。
現在のバインディングを復元するコマンドとして解析できる形式で出力します。
実行されました。

・ と キー しかしなし command、指定されたバインディングのみ キー が印刷されます。

・ と キー   command, キー にバインドされています command.

オプション
-a, --vi-コマンド
vi コマンド モードのバインディングを印刷または変更します。

-e, --emacs
emacs モードのバインディングを印刷または変更します。

-v, --vi-挿入
vi 挿入モードのバインディングを印刷または変更します。

オペランド
キー
編集コマンドにバインドされた 1 つ以上のキーの文字シーケンス。の
シーケンスにはエスケープシーケンスが含まれる場合があります。

command
行編集コマンド キー 縛られている。もし command 単一のハイフン (-), キー
バインドされていません。

出口 status
エラーがない限り、bindkey 組み込みの終了ステータスは 0 です。

Notes
組み込みのバインドキーは POSIX 標準では定義されていません。

休憩 BUILT-IN


当学校区の 破る 内蔵 実行中のループを中止します。

構文
· 破る []

· 破る -i

詳細説明
なしで実行すると、 -i (--反復) オプションを使用すると、組み込みは現在の処理を中止します。
for、while、または until ループが実行されます。ネストされたループで実行されると、 th
一番内側のループ。デフォルト 1であります。現在実行されているネストされたループの数
よりも少ない 、組み込みは最も外側のループを中止します。

で実行すると、 -i (--反復) オプションを使用すると、組み込みは現在実行されている処理を中止します。
(最も内側の) 反復実行。

オプション
-i, --反復
ループの代わりに反復実行を中止します。

オペランド

中止するループの数。正の整数である必要があります。

出口 status
ブレーク組み込みの終了ステータスは次のとおりです。

· ループが正常に中止された場合は 0。

· 反復の場合、組み込みブレークの直前に実行されたコマンドのコマンド
実行は正常に中止されました。

Notes
ブレーク内蔵は特殊な内蔵です。

POSIX 標準では、組み込みブレークのオプションは定義されていません。組み込みはいいえを受け入れます
POSIX 的に正しいモードのオプション。

CD BUILT-IN


当学校区の cd 内蔵 作業ディレクトリを変更します。

構文
· cd [-L|-P] [ディレクトリにジョブを開始します。]

詳細説明
cd 組み込みは、作業ディレクトリをオペランドで指定されたディレクトリに変更します。
新しい作業ディレクトリのパス名は、 PWD 変数、その前の
値が再度割り当てられます。 OLDPWD 変数に保存します.

If ディレクトリにジョブを開始します。 「.」または「..」で始まらない相対パスです。 CDPATH
変数を検索して新しい作業ディレクトリを見つけます。検索は次のような方法で行われます
コマンド検索の最後のステップと似ていますが、ディレクトリではなくディレクトリが検索されます。
実行可能な通常のファイル。新しい作業ディレクトリが見つかった場合 CDPATH、そのパス名は
標準出力に出力されます。検索で該当するディレクトリが見つからなかった場合は、
ディレクトリにジョブを開始します。 は、単に現在の作業ディレクトリに対する相対パス名として扱われます。

作業ディレクトリが正常に変更された場合、 YASH_AFTER_CD 変数
シェルが POSIX 的に正しいモードでない限り、コマンドとして実行されます。変数の場合
は配列であり、その値は反復的に実行されます (eval 組み込みを参照)。

オプション
-L, -論理的
新しい作業ディレクトリのパス名のシンボリック リンクは解決されません。新しい
の値 PWD シンボリック リンクであるパス名コンポーネントが含まれる場合があります。

-P, - 物理的
新しい作業ディレクトリのパス名のシンボリック リンクが解決されます。新しい
の値 PWD 変数には、シンボリック リンクであるパス名コンポーネントが含まれることはありません。

--デフォルトディレクトリ=ディレクトリにジョブを開始します。
このオプションが指定されている場合、 ディレクトリにジョブを開始します。 オペランドが省略されている場合、この引数は
オプションは、 ディレクトリにジョブを開始します。 オペランド。 もし ディレクトリにジョブを開始します。 オペランドが指定されている場合、これは
オプションは無視されます。

当学校区の -L (-論理的)と -P (- 物理的) オプションは相互に排他的です: 最後のオプションのみです
指定されたものが有効です。どちらも指定されていない場合は、 -L 想定されます。

オペランド
ディレクトリにジョブを開始します。
新しい作業ディレクトリのパス名。

If ディレクトリにジョブを開始します。 単一のハイフン (「-」)、の値です。 OLDPWD 変数は次のように仮定されます
新しいディレクトリのパス名。標準出力に出力されます。

If ディレクトリにジョブを開始します。 を省略した場合、作業ディレクトリは指定されたディレクトリに変更されます
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 --デフォルトディレクトリ=... オプション。そのオプションも指定されていない場合、
デフォルトはホームディレクトリです。

出口 status
作業ディレクトリが正常に作成された場合、cd ビルトインの終了ステータスは 0 になります。
変更され、エラーがあった場合はゼロ以外になります。

Notes
cd内蔵は準特殊な内蔵です。

POSIX 標準では、 YASH_AFTER_CD 変数または
--デフォルトディレクトリ=... オプション。標準では、単一のオプションを使用することはできません。
ハイフンオペランド。

コマンドの終了ステータス YASH_AFTER_CD 変数は、
CD内蔵。

COLON BUILT-IN


当学校区の コロン 内蔵 何もしません。

構文
· : [引数...]

詳細説明
コロン組み込みは何も行いません。コマンドライン引数はすべて無視されます。

出口 status
コロン組み込みの終了ステータスは 0 です。

Notes
コロン組み込みは特別な組み込みです。

引数が展開され、リダイレクトが通常どおり実行されます。コロンと真実
組み込み関数も同じ効果がありますが、コロンは特別な組み込み関数であり、true は
セミスペシャル。

COMMAND BUILT-IN


当学校区の command 内蔵 コマンドを実行または識別します。

構文
· command [-befp] command [引数...]

· command -v|-V [-abefkp] command...

詳細説明
なし -v (- 識別)または -V (--verbose-identify) オプションを使用すると、組み込みが実行されます
command   引数単純な実行の最後のステップと同じ方法で
コマンド。コマンドは、組み込みコマンド、外部コマンド、または関数として扱われます。
コマンド組み込みに指定されたオプションに。引数でシェルが終了しない
特殊な組み込みコマンドであっても構文エラーなど

-v (- 識別) オプション、 command 特定される。コマンドが次の場所で見つかった場合 $ PATH,
その完全なパス名が出力されます。見つからないキーワード、関数、または組み込みの場合
in $ PATH、コマンド名が単純に出力されます。エイリアスの場合は、次の形式で出力されます。
ような alias ll='ls -l'。コマンドが見つからない場合は、何も表示されず、終了ステータスが表示されます。
ゼロ以外です。

当学校区の -V (--verbose-identify) オプションは -v (- 識別) オプションですが、
出力形式がより人間に優しいものになりました。

オプション
-a, - エイリアス
コマンドをエイリアスとして検索します。と一緒に使用する必要があります -v (- 識別)または -V
(--verbose-identify)オプション。

-b, --組み込みコマンド
コマンドを組み込みとして検索します。

-e, --外部コマンド
コマンドを外部コマンドとして検索します。

-f, - 関数
コマンドを関数として検索します。

-k, - キーワード
コマンドをキーワードとして検索します。と一緒に使用する必要があります -v (- 識別)または -V
(--verbose-identify)オプション。

-p, --標準パス
システムのデフォルトを検索する パス 現在の代わりに $ PATH.

-v, - 識別
識別する commands を実行し、POSIX 標準で定義された形式で印刷します。

-V, --verbose-identify
識別する command人間に優しい形式で印刷します。

どれも -a (- エイリアス), -b (--組み込みコマンド), -e (--外部コマンド), -f
(- 関数)、及び -k (- キーワード) オプションが指定されている場合、次のデフォルトが想定されます。

なし -v (- 識別)または -V (--verbose-identify) オプション
-b -e

-v (- 識別)または -V (--verbose-identify) オプション
-a -b -e -f -k

オペランド
command
実行または識別されるコマンド。

引数...
実行されたコマンドに渡される引数。

出口 status
組み込みコマンドの終了ステータスは次のとおりです。

なし -v (- 識別)または -V (--verbose-identify) オプション
実行されたコマンドの終了ステータス。

-v (- 識別)または -V (--verbose-identify) オプション
エラーがない限りゼロです。

Notes
コマンド組み込みは、準特殊な組み込みです。

POSIXly-correct モードでは、 -p, -v, -V 使用できず、最大でも
XNUMXつ command を指定することができます。 POSIX 標準では両方を指定することはできません。 -v   -V
一緒に実行されますが、yash は実行されます (最後に指定されたもののみが有効です)。

システム全体の解析 BUILT-IN


当学校区の コンプリート 内蔵 補完候補を生成します。この組み込みは実行のみ可能です
コマンドライン補完時の補完関数から。

構文
· コンプリート [-A パターン] [-NS パターン] [-T] [-NS 接頭辞] [-NS サフィックス] [-abcdfghjkuv] [[-O]
[-NS 説明] 単語...]

詳細説明
組み込み関数は、指定された引数に従って補完候補を生成します。いいえ
候補がどのように生成されたとしても、単語に一致する候補のみが完成します
が生成されます。

オプション
-A パターン, --accept=パターン
このオプションで指定されたパターンに一致する候補のみを受け入れます。以上のとき
このオプションのいずれかが指定されている場合、すべてのパターンに一致する候補のみが表示されます。
生成された。

-D 説明, --説明=説明
の説明をしてください 単語 候補者たち。説明は横に表示されます
候補者リストの候補者。

-O, - オプション
候補はコマンド ライン オプションとして扱われます。それぞれの先頭にハイフンが追加されます
オプションとして扱われる候補者。

-P 接頭辞, --prefix =接頭辞
無視する 接頭辞 候補を生成するときに完成する単語の部分。指定された
接頭辞 は単語の最初の部分である必要があります。

完成中の単語が ファイル:///ホーム/ユーザー/ドキュメント たとえば、コマンドライン
コンプリート -P ファイル:// -f 完全なパス名候補を生成します。
/ホーム/ユーザー/ドキュメント.

-R パターン, --拒否=パターン
このオプションで指定されたパターンに一致する候補を拒否します。複数のとき
このオプションが指定されている場合、どのパターンにも一致しない候補のみが表示されます。
生成された。

-S サフィックス, -サフィックス=サフィックス
追加 サフィックス 生成された各候補に。

-T, --終了なし
単語が完成した後にスペースを追加しないでください。このオプションを使用しない場合、スペースは
完成した単語の前にスペースを入力する必要がないように、完成した単語に追加されます。
次の言葉。

オプション それ select 候補者
-a, - エイリアス
別名。 (と同じ --通常のエイリアス --グローバルエイリアス)

--配列変数
配列。

--バインドキー
行編集コマンド バインドキー 組み込みは受け入れます。

-b, --組み込みコマンド
組み込みコマンド。 (と同じ --特別な組み込み --準特殊組み込み
--通常の組み込み)

-c, - 指図
コマンド。 (と同じ --組み込みコマンド --外部コマンド - 関数)

-d, - ディレクトリ
ディレクトリ。

--dirstack-index
ディレクトリスタックの有効なインデックス。

- 実行可能ファイル
実行可能な通常のファイル。

--外部コマンド
外部コマンド。

-f, - ファイル
ファイル (ディレクトリを含む)。

--終了したジョブ
完了したジョブのジョブ ID。

- 関数
機能。

--グローバルエイリアス
グローバルエイリアス。

-g, - グループ
ユーザーグループ。

-h, -ホスト名
ホスト名。

-j, - 仕事
ジョブ ID。

-k, - キーワード
キーワード。

--通常のエイリアス
通常の別名。

--通常の組み込み
通常の組み込みコマンド。

--実行中のジョブ
実行中のジョブのジョブID。

--スカラー変数
配列ではない変数。

--準特殊組み込み
準特殊な組み込みコマンド。

- 信号
シグナル。

--特別な組み込み
特別な組み込みコマンド。

--停止したジョブ
一時停止されているジョブのジョブ ID。

-u, -ユーザー名
ユーザーのログイン名。

-v, - 変数
変数。

Status -d (- ディレクトリ) オプションが指定されていません。 -f (- ファイル) オプション、 -S /
-T オプションが想定されます。

生成されたジョブ ID の候補には先頭にパーセント記号 (%)。もしその言葉が
完了はパーセント記号で始まります。 -P % オプションを指定する必要があります。

オペランド
オペランドは補完候補として扱われます。

出口 status
組み込みの終了ステータスは、1 つ以上の候補が生成された場合は 0、次の場合は 1 になります。
候補が生成されないか、エラーが発生した場合は複数の候補が生成されます。

Notes
完全な組み込みは POSIX 標準では定義されていません。

CONTINUE BUILT-IN


当学校区の 続ける 内蔵 実行中のループの反復をスキップします。

構文
· 続ける []

· 続ける -i

詳細説明
なしで実行すると、 -i (--反復) オプションを使用すると、組み込みは現在の処理を中止します。
for、while、または until ループを繰り返し、ループの次の繰り返しを開始します。いつ
ネストされたループで実行されると、 一番内側のループ。デフォルト 1であります。
現在実行されているネストされたループの数が以下の場合 、組み込みの影響
一番外側のループ。

で実行すると、 -i (--反復) オプションを使用すると、組み込みは現在の反復を中止します。
(最も内側の) 反復実行の。

オプション
-i, --反復
ループの代わりに反復実行をスキップします。

オペランド

当学校区の 最も内側のループが影響を受けます。 正の整数でなければなりません。

出口 status
continue 組み込みの終了ステータスは次のとおりです。

· ループ反復が正常にスキップされた場合は 0。

· 反復の場合、組み込みの continue の直前に実行されたコマンドのコマンド
実行は正常にスキップされました。

Notes
continue ビルトインは特別なビルトインです。

POSIX 標準では、Continue 組み込みのオプションは定義されていません。組み込みはいいえを受け入れます
POSIX 的に正しいモードのオプション。

ディレクトリ BUILT-IN


当学校区の Dirs 内蔵 ディレクトリスタックの内容を出力します。

構文
· Dirs [-履歴書] [index..]

詳細説明
当学校区の ディレクトリにジョブを開始します。 スタック 作業ディレクトリの履歴を記録する機能です。使用できます
ディレクトリスタックに作業ディレクトリを保存するためのpushdビルトイン、popdビルトイン
保存された作業ディレクトリを呼び出し、スタックの内容を確認するために組み込まれた dirs を呼び出します。
これらの組み込みでは、 ダースタック 配列と PWD スタックの内容を保存する変数。
配列を変更するということは、スタックの内容を変更することを意味します。

ディレクトリ スタック エントリには、符号付き整数によってインデックスが付けられます。インデックス +0 のエントリは、
現在の作業ディレクトリ、+1 は最後に保存されたディレクトリ、+2 は最後から XNUMX 番目、というように
の上。負のインデックスは逆の順序になります。インデックス -0 のエントリが最初に保存されます。
ディレクトリ、-1 は XNUMX 番目、-n スタックにある場合は、現在の作業ディレクトリです。 n
エントリ、

なしで実行すると、 -c (- クリア) オプションを使用すると、組み込みの dirs は現在のファイルを出力します。
ディレクトリスタックの内容を標準出力に出力します。とともに -c (- クリア) オプション、
組み込みはディレクトリスタックをクリアします。

オプション
-c, - クリア
現在の作業ディレクトリを除くディレクトリ スタックの内容をクリアします。
インデックス+0。

-v, -詳細
スタックの内容を印刷するときにインデックスを印刷します。

オペランド
index
印刷するスタック エントリのインデックス。

複数のインデックスを指定できます。インデックスを指定しない場合は、すべてのエントリが
印刷されます。

出口 status
エラーがない限り、組み込み dirs の終了ステータスは 0 です。

Notes
dirs ビルトインは POSIX 標準では定義されていません。

見捨てる BUILT-IN


当学校区の 勘当します 内蔵 ジョブを削除します。

構文
· 勘当します [-NS] [ジョブ...}

詳細説明
disown ビルトインは、指定されたジョブをジョブ リストから削除します。削除されたジョブは無効になります
ジョブ制御ができなくなりますが、ジョブプロセスは実行を継続します(ジョブプロセスが制御されない限り)。
一時停止中)。

オプション
-a, - すべて
すべてのジョブを削除します。

オペランド
ジョブ
削除するジョブのジョブ ID。

ジョブ ID は複数指定できます。ジョブ ID を指定しない場合、現在の
ジョブが削除されます。シェルが POSIX 的に正しいモードではない場合、シェルの % プレフィックス
ジョブIDは省略可能です。

出口 status
disown 組み込みの終了ステータスは、エラーがない限り 0 です。

Notes
disown 組み込みは POSIX 標準では定義されていません。

DOT BUILT-IN


当学校区の ドット 内蔵 ファイルを読み取り、その中のコマンドを実行します。

構文
· . [-AL] file [引数...]

詳細説明
ドット組み込みは指定された値を読み取ります。 file、その内容をコマンドとして解析し、実行します
現在のコマンド実行環境でそれらを実行します。

If 引数が指定されると、位置パラメータが一時的にそれらに設定されます。の
位置パラメータは、ドットの組み込みが終了すると復元されます。いいえの場合 引数sです
指定しても、位置パラメータは変更されません。

If file スラッシュが含まれていない場合、シェルは検索します $ PATH 読みやすいように(ただしそうではありません)
必ず実行可能) という名前のシェル スクリプト ファイル file コマンドと同じように
検索。そのようなファイルが見つからなかった場合、シェルは現在の作業ディレクトリでファイルを検索します。
POSIX 的に正しいモードでない限り、ファイルは無効になります。ファイルが現在作業中であることを確認するには
ディレクトリが使用されている場合は、開始します file と '。/'。

オプション
-A, --エイリアスなし
解析中のエイリアス置換を無効にします。

-L, --オートロード
検索 $YASH_LOADPATH $ PATH、 どうか関わらず file スラッシュが含まれています。
当学校区の file 値は、現在の作業ディレクトリに対して相対的なものとは見なされません。

ドット組み込みは、最初のオペランドの後のコマンド ライン引数をオペランドとして扱います。

オペランド
file
読み取られるファイルのパス名。

引数...
実行時に位置パラメータが設定される文字列。

出口 status
ドット組み込みの終了ステータスは、最後に実行されたコマンドの終了ステータスです。終了ステータス
ファイルに実行するコマンドが含まれていない場合はゼロ、ファイルが見つからなかった場合はゼロ以外
または開けませんでした。

Notes
ドット内蔵は特殊な内蔵です。

ドットが組み込まれている場合、非対話型シェルはゼロ以外の終了ステータスで直ちに終了します。
実行するファイルが見つからないか、開くことができません。

POSIX 標準では、ドット組み込みのオプションは定義されていません。組み込みはいいえを受け入れます
POSIX 的に正しいモードのオプション。

POSIX 標準では定義されていません。 引数...オペランド。指定ミスです
  引数...POSIX 的に正しいモードのオペランド。

エコー BUILT-IN


当学校区の echo 内蔵 引数を出力します。

構文
· echo [string...]

組み込みは、オプションを除くすべてのコマンド ライン引数をオペランドとして扱います。
以下で説明します。許容可能なオプションとして解析できない単語はすべて、
オペランド。オプションはすべてのオペランドの前に置く必要があります。エコーでは構文エラーは決して発生しません
内蔵しています。

詳細説明
echo 組み込みはオペランドを出力します strings の後に改行が続き、標準出力に出力されます。
当学校区の stringはそれぞれスペースで区切られます。

エスケープ シーケンス
当学校区の エコースタイル 変数と -e オプションは置換されるエスケープシーケンスを有効にします
対応する文字:

\a
ベル文字(ASCIIコード:7)

\b
バックスペース(ASCIIコード:8)

\c
何もない。このエスケープ シーケンスの後は、文字はまったく出力されません。

\e
エスケープ文字(ASCIIコード:27)

\f
改ページ文字(ASCIIコード:12)

\n
改行文字(ASCIIコード:10)

\r
キャリッジリターン文字(ASCIIコード:13)

\t
水平タブ文字(ASCIIコード:9)

\v
垂直タブ文字(ASCIIコード:11)

\\
バックスラッシュ

\0XXX
コードが次の文字 XXXここで、 XXX 最大 3 桁の 8 進数です。

エスケープ シーケンスが有効になっていない場合、エスケープ シーケンスはそのまま出力されます。

エコースタイル 変数
当学校区の エコースタイル 変数は、どのオプションが受け入れられるか、およびエスケープするかどうかを定義します
シーケンスはデフォルトで有効になっています。変数値は次のいずれかに設定する必要があります。
次のとおりです。

SYSV, XSI
オプションは受け付けません。エスケープ シーケンスは常に有効です。

BSD
当学校区の -n オプションは受け入れられます。エスケープ シーケンスは決して有効になりません。

GNU
当学校区の -n, -e, -E オプションも受け付けます。エスケープ シーケンスは次の方法では有効になりません。
デフォルトですが、次の方法で有効にできます。 -e オプションを選択します。

ZSH
当学校区の -n, -e, -E オプションも受け付けます。エスケープ シーケンスはデフォルトで有効になっています。
ただし、次の方法で無効にすることができます -E オプションを選択します。

ダッシュ
当学校区の -n オプションは受け入れられます。エスケープ シーケンスは常に有効です。

RAW
オプションは受け付けません。エスケープ シーケンスは決して有効になりません。

エコースタイル 変数は設定されていません。デフォルトでは SYSV.

オプション
-n
最後に改行を出力しないでください。

-e
エスケープシーケンスを有効にします。

-E
エスケープシーケンスを無効にします。

出口 status
エラーがない限り、エコー組み込みの終了ステータスは 0 です。

Notes
POSIX 標準では定義されていません。 エコースタイル 変数もオプションもありません
内蔵。 POSIX によれば、組み込みの動作は実装によって定義されます。
最初の引数は -n または、引数にバックスラッシュが含まれている場合。最大限に
移植性を考慮すると、組み込みの echo よりも printf 組み込みを優先する必要があります。

エバール BUILT-IN


当学校区の 評価する 内蔵 オペランドをコマンドとして評価します。

構文
· 評価する [-私] [ command...]

eval 組み込みでは、すべてのオプションがオペランドよりも前にある必要があります。任意のコマンドライン引数
最初のオペランド以降はすべてオペランドとして扱われます。

詳細説明
eval はオペランドをコマンドとして解析し、現在のコマンド実行で実行します。
環境。

なしで実行すると、 -i (--反復) オプションを使用すると、すべてのオペランドが次のように連結されます。
1 つの文字列 (各オペランドの間にスペースが挿入されます) が一度に解析/実行されます。

-i (--反復) オプションを使用すると、組み込み関数が実行します 反復的 実行: オペランドは
1つずつ解析/実行されます。 continue 組み込みが実行された場合、 -i (--反復)
反復実行中にオプションを使用すると、現在のオペランドの実行が中止され、
次のオペランドはすぐに解析/実行されます。ブレーク内蔵 -i
(--反復) オプションは似ていますが、残りのオペランドは解析/実行されません。の
の値 ? 特別なパラメータは、反復実行が開始される前に保存されます。の
パラメータ値は、各反復後に保存された値に復元されます。

オプション
-i, --反復
反復実行を実行します。

オペランド
command
解析されてコマンドとして実行される文字列。

出口 status
いいえの場合、終了ステータスはゼロです。 command 指定されていた、または command 実際のコマンドは含まれていませんでした
それは実行できるのです。それ以外の場合、つまり eval 組み込みが 1 つ以上実行した場合
コマンドの場合、eval 組み込みの終了ステータスは、最後に実行されたコマンドの終了ステータスになります。

Notes
eval ビルトインは特別なビルトインです。

POSIX 標準では、eval 組み込みのオプションは定義されていません。組み込みはいいえを受け入れます
POSIX 的に正しいモードのオプション。

エグゼク BUILT-IN


当学校区の exec 内蔵 シェルプロセスを別の外部コマンドに置き換えます。

構文
· exec [-cf] [-NS ] [ command [引数...]]

exec ビルトインでは、すべてのオプションがオペランドよりも前にある必要があります。重要なことなので、
exec ビルトインのオプションは、次のオプションと混同されません。 command。任意のコマンドライン
後の引数 command として扱われます 引数s.

詳細説明
exec ビルトインが実行されるとき command、シェルが実行されます command   引数s
単純なコマンド実行の最後のステップと同様の方法で。違いは次のとおりです。
それ command 既存の関数を無視して常に外部コマンドとして扱われます。
組み込みコマンドと、外部コマンドを開始する exec システム コールが
サブシェルの代わりに現在のコマンド実行環境を使用し、シェル プロセスを置き換えます。
新しいコマンドプロセスを使用します。

シェルが POSIX 的に正しいモードであるか、対話型でない場合、次のコマンドの実行に失敗します。
command シェルはすぐに終了します。

POSIX 的に正しいモードではない対話型シェルに停止したジョブがある場合、
シェルは警告メッセージを出力し、実行を拒否します。 command。シェルプロセスが完了すると、
外部コマンドに置き換えると、シェルのジョブに関する情報が失われるため、
手動でシグナルを送信して、停止したジョブを再開または強制終了する必要があります。シェルを強制するには
実行します command 関係なく、 -f (- 力)オプション。

何もせずに実行した場合 command、組み込みは何もしません。ただし、副作用として、
組み込みに適用されたリダイレクトは、現在のコマンド実行環境に残ります。
組み込みが終了した後でも。

オプション
-a , --as=
合格 の代わりに、 command、その名前として外部コマンドに追加されます。

-c, - クリア
外部コマンドには、単純なコマンドで割り当てられた変数のみを渡します。
組み込みが実行されています。他の環境変数は渡されません
コマンド。

-f, - 力
コマンドの実行を妨げる警告を抑制します。

オペランド
command
実行する外部コマンド。

引数...
コマンドに渡される引数。

出口 status
シェルプロセスが外部コマンドに正常に置き換えられた場合、終了はありません。
シェルプロセスが存在しなくなったためのステータス。

終了ステータスは次のとおりです。

· コマンドが見つからなかった場合は 127、

· コマンドが見つかったが実行できなかった場合は 126、

· いいえの場合はゼロ command 指定されました。

Notes
exec ビルトインは特別なビルトインです。

POSIX 標準では、exec ビルトインのオプションは定義されていません。組み込みはいいえを受け入れます
POSIX 的に正しいモードのオプション。

EXIT BUILT-IN


当学校区の 終了する 内蔵 シェルプロセスを終了させます。

構文
· 終了する [-NS] [終了ステータス]

詳細説明
exit 組み込みにより、現在のシェル (またはサブシェル) プロセスが終了します。

対話型シェルに停止したジョブがある場合、シェルは警告メッセージを出力し、ジョブを拒否します。
出る。関係なくシェルを強制的に終了するには、 -f (- 力) オプションまたは実行
ビルトインを2回連続で実行します。

EXIT トラップが設定されている場合、シェルは終了する前にトラップを実行します。

オプション
-f, - 力
シェルの終了を妨げる警告を抑制します。

オペランド
終了ステータス
終了するシェルの終了ステータスとなる非負の整数。

このオペランドを省略した場合、シェルの終了ステータスは最後のシェルの終了ステータスになります。
組み込みを終了する前にコマンドが実行されました (ただし、組み込みが実行中に実行された場合は、
トラップの場合、終了ステータスはトラップに入る前の最後のコマンドのステータスになります)。

If 終了ステータス が 256 以上の場合、実際の終了ステータスは残りの部分になります。
終了ステータス 256で割った値。

出口 status
ビルトインによってシェルが終了するため、ビルトインの終了ステータスはありません。

例外として、シェルが終了を拒否した場合、組み込みの終了ステータスは次のようになります。
ゼロではない。

Notes
exit ビルトインは特別なビルトインです。

POSIX 標準では、組み込み出口のオプションは定義されていません。組み込みはいいえを受け入れます
POSIX 的に正しいモードのオプション。

POSIX 標準では、 終了ステータス オペランドは 0 ~ 255 の範囲にする必要があります
(包括的)。 Yash は 255 より大きい整数を拡張子として受け入れます。

EXIT トラップ中に組み込みが実行された場合、シェルは実行されずに終了します。
またしても罠。もし 終了ステータス が指定されていない場合、シェルの終了ステータスは
トラップが設定されていない場合の終了ステータスは次のとおりです。 「シェルの終了」も参照してください。

輸出する BUILT-IN


当学校区の export 内蔵 子プロセスにエクスポートする変数をマークします。

構文
· export [-prX] [[=] ...]

詳細説明
エクスポート組み込みは、 -gx オプションを選択します。

Notes
エクスポート ビルトインは特別なビルトインです。

POSIX 標準では、 -p オプションのみ。他のオプションは使用できません
POSIX 的に正しいモード。 POSIX では、このオプションをオペランドと一緒に使用することはできません。

間違った情報 BUILT-IN


当学校区の false 内蔵 何も失敗しません。

構文
· false

詳細説明
false の組み込みは何も行いません。コマンドライン引数はすべて無視されます。

出口 status
false 組み込みの終了ステータスは 0 以外です。

Notes
false 組み込みは、準特殊な組み込みです。

FC BUILT-IN


当学校区の fc 内蔵 コマンドを再実行するか、コマンド履歴からコマンドを出力します。

構文
· fc [-qr] [-e エディタ] [start [end]]

· fc -s[q] [古い=NEW] [start]

· fc -l[nrv] [start [end]]

詳細説明
なしで実行すると、 -l (- リスト) オプションを使用すると、組み込みはコマンドを実行します。
オペランドで指定されたコマンド履歴範囲。もし -s (- 静けさ) オプションはありません
指定すると、シェルはエディターを起動し、コマンドを実行する前にコマンドを編集できるようにします。
が実行されます。コマンドはエディタを終了すると実行されます。もし -s (- 静けさ)
オプションを指定すると、コマンドが即時に実行されます。いずれの場合でも、実行されたのは、
コマンドは標準出力に出力され、履歴に追加されます。

で実行すると、 -l (- リスト) オプションを使用すると、組み込みはコマンド内のコマンドを出力します。
オペランドで指定された履歴範囲。デフォルトでは、コマンドはその内容とともに出力されます。
履歴エントリ番号を使用しますが、出力形式は -n (--数字なし))と
-v (-詳細)オプション。

オプション
-e エディタ, --editor =エディタ
コマンドの編集に使用するエディタを指定します。

このオプションが指定されていない場合、 FC編集 変数が使用されます。もし
変数も設定されていません。 vi 使用されている。

-l, - リスト
コマンド履歴エントリを出力します。

-n, --数字なし
履歴エントリを印刷するときにエントリ番号を印刷しないでください。

-q, - 静かな
実行前にコマンドを出力しないでください。

-r, - 逆行する
範囲内のコマンド エントリの順序を逆にします。

-s, - 静けさ
コマンドを編集せずに実行します。

-v, -詳細
印刷時に各履歴エントリの前の実行時間を印刷します。

オペランド
start   end
当学校区の start   end オペランドは、コマンド履歴エントリの範囲を指定します。
実行または印刷されます。オペランドの 1 つが整数の場合、履歴として扱われます。
エントリー番号。負の整数は、 n番目の最新のエントリ n
整数の絶対値。オペランドの 1 つが整数でない場合、そのオペランドは整数として扱われます。
コマンド文字列の一部: この文字列で始まる最新のエントリは次のとおりです。
範囲の開始または終了として選択されます。

で指定された範囲の最初のエントリの場合、 start 前回よりも新しいです
で指定された範囲のエントリ end、範囲はあたかも逆になります。 -r
(- 逆行する) オプションが指定されました。 (すでにオプションが指定されている場合は、
キャンセル。)

のデフォルト値 start   end には次の値があります:

┌──────┬─────┬─────────┐
││   -l無し -l
§─────┼─────┼─────────┤
start │ -16 │ -1 │
§─────┼─────┼─────────┤
end │ -16 │ 同上 start
└─────┴─────┴─────────┘

古い=NEW
この形式のオペランドは、コマンド文字列の一部を置き換えます。コマンド文字列の場合
含まれています 古い、と置き換えられます NEW そして新しい文字列が実行されます。最初だけ
の発生 古い 置き換えられます。

出口 status
コマンドが実行された場合、fc ビルトインの終了ステータスは最後に実行されたステータスになります。
指示。それ以外の場合、エラーがない限り、終了ステータスは 0 になります。

Notes
fc ビルトインは準特殊なビルトインです。

POSIX 標準では定義されていません。 -q (- 静かな)または -v (-詳細) オプションなので、
POSIXly 正しいモードでは使用できません。

行編集中はコマンド履歴を変更できません。

FG BUILT-IN


当学校区の fg 内蔵 フォアグラウンドでジョブを再開します。

構文
· fg [ジョブ...]

詳細説明
fg ビルトインは、指定されたジョブをフォアグラウンドに移動し、SIGCONT シグナルを
仕事。その結果、ジョブはフォアグラウンドで再開されます (一時停止されていた場合)。の
次に、組み込み関数はジョブが終了するのを待ち、ジョブの終了ステータスを返します。

ジョブが再開されると、ジョブの名前が印刷されます。

ビルトインは、ジョブ制御が有効な場合にのみ使用できます。

オペランド
ジョブ
再開するジョブのジョブID。

複数のジョブが指定されている場合は、一度に 1 つずつ順番に再開されます。の
何も指定されていない場合は、現在のジョブが再開されます。

パーセント記号 (%) シェルがそうでない場合、ジョブ ID の先頭にあるのは省略できます。
POSIX 的に正しいモードで。

出口 status
fg ビルトインの終了ステータスは、再開された (最後に) ジョブの終了ステータスです。終了ステータスは、
何らかのエラーがあった場合はゼロ以外。

Notes
fg ビルトインは準特殊なビルトインです。

POSIX 準拠モードでは複数のジョブを指定できません。

ゲトップツ BUILT-IN


当学校区の 取得 内蔵 コマンドオプションを解析します。

構文
· 取得 オプションリスト 変数 [引数...]

詳細説明
getopts 組み込みは、次のような単一文字のオプションを解析します。 引数s.毎回
組み込みが呼び出されると、1 つのオプションが解析され、そのオプション文字が次のオプションに割り当てられます。
変数.

当学校区の オプションリスト オペランドは、
パーサー。で オプションリストの場合は、引数を取るオプションをオプションとして指定する必要があります。
文字の後にコロンが続きます。たとえば、 -a, -b   -c あるべきオプション
解析されて、 -b 引数を取るオプションがある場合、 オプションリスト でなければなりません ab:c.

引数を取るオプションが解析されると、引数は オプターグ
変数に保存します.

に指定されていないオプションを指定した場合 オプションリスト が見つかった場合、またはオプション引数が見つかった場合
欠落している場合、結果は次の最初の文字によって異なります。 オプションリスト:

・ もしも オプションリスト コロンで始まる場合、オプション文字が オプターグ
変数と 変数 どちらかに設定されています ? (オプションが入っていない場合 オプションリスト)または :
(オプション引数が欠落している場合)。

・ さもないと、 変数 に設定されています ? オプターグ 変数が設定されておらず、エラー メッセージが表示されます。
印刷されます。

組み込みは、実行ごとに 1 つのオプションを解析します。一連のコマンド内のすべてのオプションについて
行引数を解析するには、同じ内容で組み込みを繰り返し実行する必要があります。
引数。組み込みは、 最適化 どの変数を覚えておくか 引数 でなければなりません
次に解析されます。組み込みが初めて呼び出されるとき、変数値は次のようにする必要があります。
1、これがデフォルト値です。すべてのオプションが設定されるまで、変数を変更しないでください。
組み込み関数が変数を最初のオペランドのインデックスに設定するときに解析されます。
引数s. (オペランドがない場合は、次の数が設定されます) 引数プラス 1。)

新しいセットの解析を開始したい場合 引数s、リセットする必要があります 最適化
変数へ 1 予め。

オペランド
オプションリスト
解析時に有効なオプションとして受け入れられる必要があるオプションのリスト。

変数
結果が割り当てられる変数の名前。

引数s
解析されるコマンドライン引数。

いいえの場合 引数が与えられると、位置パラメータが解析されます。

出口 status
オプションが見つかった場合、それが指定されているかどうか オプションリスト、終了ステータスは
ゼロ。解析するオプションがもうない場合、終了ステータスは 0 以外になります。

例:
aopt=false bopt=copt=false
while getopts ab:c opt
do
$オプトインの場合
a) aopt=true ;;
b) bopt=$OPTARG ;;
c)copt=true ;;
\?) 2 を返します ;;
ESAC
行われ
$aopt の場合;次に、指定されたオプション -a をエコーし​​ます。フィ
if [ -n "$bopt" ];次に、オプション -b $bopt を指定してエコーします。フィ
$coptの場合;次に、指定されたオプション -c をエコーし​​ます。フィ
シフト $((OPTIND - 1))
echo オペランドは次のとおりです: $*

Notes
In 引数解析される場合、オプションはオペランドよりも前に置く必要があります。組み込みは解析を終了します
最初のオペランドに遭遇したとき。

getopts ビルトインは、準特殊なビルトインです。

POSIX 標準では、次の場合に何が起こるかについては規定されていません。 最適化 変数が代入される
以外の値 1.

ハッシュ BUILT-IN


当学校区の ハッシュ 内蔵 コマンドの場所を記憶、忘れ、または報告します。

構文
· ハッシュ command...

· ハッシュ -r [ command...]

· ハッシュ [-NS]

· ハッシュ -d user...

· ハッシュ -博士 [user...]

· ハッシュ -d

詳細説明
で実行すると commandただし、オプションがない場合、組み込みはコマンドをすぐに実行します。
パス検索とキャッシュ commandのフルパス。

で実行すると、 -r (- 削除する) オプションを使用すると、次のパスが削除されます。 commands (またはすべて
何も指定されていない場合は、キャッシュされたパス) からキャッシュから取得されます。

オプションなしで実行した場合、または commands、現在キャッシュされているパスを出力します。
標準出力。

-d (- ディレクトリ) オプション、組み込みはホーム ディレクトリに対して同じことを行います
コマンド パス キャッシュではなくキャッシュです。キャッシュされたホーム ディレクトリ パスはチルダで使用されます
拡張。

オプション
-a, - すべて
キャッシュされたパスをすべて出力します。

このオプションを使用しない場合、組み込みのパスは出力されません。

-d, - ディレクトリ
コマンド パス キャッシュではなく、ホーム ディレクトリ キャッシュに影響します。

-r, - 削除する
キャッシュされたパスを削除します。

オペランド
command
外部コマンドの名前 (スラッシュを含まない)。

user
ユーザー名。

出口 status
エラーがない限り、ハッシュ組み込みの終了ステータスは 0 です。

Notes
シェルは、コマンドの実行時にコマンドとディレクトリのパスを自動的にキャッシュします。
チルダ展開を実行するため、通常はこの組み込みを明示的に使用する必要はありません
パスをキャッシュします。

に値を割り当てると、 パス 変数は、あたかもキャッシュからすべてのコマンド パスを削除します。 ハッシュ
-r 実行されました。

POSIX 標準では、 -r オプションのみ: 他のオプションは使用できません。
POSIX 的に正しいモード。

ヘルプ BUILT-IN


当学校区の 助けます 内蔵 組み込みの使用法を出力します。

構文
· 助けます [内蔵...]

詳細説明
組み込みのヘルプは、次の説明を出力します。 内蔵s.

組み込みは出力の一部を抽出します。 man ヤシュ そしてそれを標準出力に出力します。
したがって、組み込みが機能するには、yash のマニュアル ページがインストールされている必要があります。
man コマンドの書式設定スタイルによっては、組み込みが次のように機能しない場合があります。
期待した。

オペランド
内蔵s
組み込みの名前。

出口 status
エラーがない限り、組み込みヘルプの終了ステータスは 0 です。

Notes
組み込みヘルプは POSIX 標準では定義されていません。

yash の組み込みの多くは、 - 助けて 同じ説明を出力するオプション。

HISTORY BUILT-IN


当学校区の 歴史 内蔵 コマンド履歴を印刷または編集します。

構文
· 歴史 [-cF] [-NS エントリ] [-NS command] [-NS file] [-w file] [カウント]

詳細説明
組み込みの履歴は、コマンド履歴を印刷または編集します。

オプションを指定して実行すると、組み込みはオプションに従って履歴を編集します。もっとあれば
複数のオプションが指定されている場合、各オプションは順番に処理されます。

で実行すると、 カウント オペランド、組み込みは最新の値を出力します カウント 歴史
fc 組み込みと同じ方法で標準出力にエントリを追加します。

オプションもオペランドも指定せずに実行すると、組み込み関数は履歴全体を出力します。

オプション
-c, - クリア
すべての履歴エントリを完全に消去します。

-d エントリ, --削除=エントリ
指定されたものを削除します エントリを選択します。 エントリ と同じ方法で指定する必要があります。
start   end fc 組み込みのオペランド。

-F, --フラッシュファイル
履歴ファイルを再構築します。この操作により、未使用の古いデータがファイルから削除されます。

-r file, --read=file
コマンドラインを読み取る file そしてそれらを履歴に追加します。ファイルの内容は
単純なテキストの行として扱われます。

-s command, --set= command
追加 command 最新のエントリを削除した後の新しい履歴エントリとして。

-w file, --write =file
履歴全体を次のアドレスに書き込みます file。ファイル内の既存のデータはすべて失われます。の
出力形式は単純なテキストの行であり、各行はコマンド文字列です。

オペランド
カウント
印刷するエントリの数。

出口 status
エラーがない限り、組み込み履歴の終了ステータスは 0 です。

Notes
組み込みの履歴は POSIX 標準では定義されていません。

行編集中はコマンド履歴を変更できません。

JOBS BUILT-IN


当学校区の jobs 内蔵 ジョブのステータスを報告します。

構文
· jobs [-lnprs] [ジョブ...]

詳細説明
組み込みジョブは、シェルが現在制御しているジョブの情報を出力します。

デフォルトでは、次の情報がジョブごとに 1 行ずつ印刷されます。

· ジョブ番号、

・ NS + or - ジョブが現在のジョブまたは前のジョブである場合はそれぞれ記号、

· ステータス、および

· コマンド文字列。

オプション
-l, -詳細
ジョブ内の各プロセスのプロセス ID、ステータス、およびコマンド文字列を出力します。

-n, - 新着
新しいジョブのみを印刷します: ステータスが報告されてからステータスが報告されていないジョブ
変更されました。

-p, --pgid のみ
ジョブのプロセス グループ ID のみを出力します。

-r, --実行中のみ
実行中のジョブのみを印刷します。

-s, --停止のみ
停止したジョブのみを印刷します。

オペランド
ジョブs
レポートされるジョブのジョブ ID。いいえの場合 ジョブ が指定されている場合、その下のすべてのジョブ
シェルの制御が報告されます。

出口 status
組み込みジョブの終了ステータスは、エラーがない限りゼロです。

Notes
ビルトインのジョブは、準特殊なビルトインです。

POSIX 標準では、 -l   -p オプションのみ: 他のオプションは使用できません。
POSIX 的に正しいモード。 POSIXly-correct モードでは、 -l オプションがある
ステータスがプロセスごとではなくジョブごとにレポートされる点が異なります。

yash によって実行されるジョブのプロセス グループ ID は、最初のジョブのプロセス ID と同じです。
ジョブを形成するパイプラインのコマンド。

KILL BUILT-IN


当学校区の kill 内蔵 プロセスにシグナルを送信します。

構文
· kill [-信号|-s 信号|-n 信号] プロセス...

· kill -l [-v] [信号...]

kill 組み込みでは、すべてのオプションがオペランドよりも前にある必要があります。任意のコマンドライン引数
最初のオペランド以降はすべてオペランドとして扱われます。

詳細説明
なしで実行すると、 -l オプションを使用すると、組み込み関数がプロセスにシグナルを送信します。シグナル
オプションで送信内容を指定できます。シグナルが指定されていない場合、SIGTERM シグナルが送信されます。

で実行すると、 -l オプションの場合、組み込みは次の情報を出力します。 信号
標準出力。 いいえの場合 信号 を指定すると、すべての信号の情報が出力されます。

オプション
信号指定 オプション
-信号, -s 信号, -n 信号
シグナル指定オプションは、プロセスに送信されるシグナルを指定します。 信号 できる
名前または番号で指定できます。番号の場合 0 が指定されている場合、組み込みは
シグナルをプロセスに送信できますが、実際にはシグナルは送信されません。信号名
大文字と小文字は区別されません。

一度に指定できる信号指定オプションは 1 つだけです。

その他 オプション
-l
シグナルを送信する代わりにシグナル情報を出力します。

-v
さらに信号情報を出力します。

このオプションを使用しないと、組み込みは信号名のみを出力します。このオプションにより追加されるのは、
信号番号と簡単な説明。

-v オプションが指定されている場合、 -l オプションは省略可能です。

オペランド
プロセスes
シグナルの送信先のプロセスを指定します。

プロセスはプロセスID、プロセスグループID、ジョブIDで指定できます。の
プロセス グループ ID の前にハイフン (-) として扱われないようにします。
プロセスID。

日時 0 として指定されます プロセス、シグナルは、
シェルプロセスが所属します。いつ -1 が指定されている場合、シグナルはすべてのプロセスに送信されます。
システム。

信号
情報を印刷する信号を指定します。

シグナルは、コマンドの名前、番号、または終了ステータスによって指定できます。
それは信号によって殺されました。

出口 status
エラーがない限り、kill 組み込みの終了ステータスは 0 です。信号があった場合
少なくとも 1 つのプロセスに送信された場合、シグナルが送信されなかった場合でも終了ステータスは 0 になります。
指定されたすべてのプロセス。

Notes
kill ビルトインは準特殊なビルトインです。

ハイフンで始まるコマンド引数は注意して使用する必要があります。コマンド kill -1
-2たとえば、シグナル 1 をプロセス グループ 2 に送信します。 -1 として扱われます
信号指定オプションと -2 プロセスグループを指定するオペランドとして使用します。コマンド
kill -- -1 -2   kill -期間 -1 -2一方、両方を扱います -1   -2 オペランドとして。

POSIX 標準では定義されていません。 -n or -v オプションなので、
POSIX 的に正しいモード。標準では信号番号を指定することはできません。
の引数 -s オプションまたは信号名を 信号 オペランド。

この規格では、信号名を指定する必要があります。 SIG プレフィックス、 INT  
QUITを。シェルが POSIX 的に正しいモードでない場合、組み込み関数は受け入れます。 SIG-接頭辞付き
信号名も。

POPD BUILT-IN


当学校区の popdを 内蔵 ディレクトリスタックからディレクトリをポップします。

構文
· popdを [index]

詳細説明
Popd ビルトインは、ディレクトリ スタックから最後のエントリを削除し、ディレクトリ スタックに戻ります。
以前の作業ディレクトリ。もし index が与えられた場合、次のように指定されたエントリが与えられます。 index 削除されます
最後のものの代わりに。

オペランド
index
削除するディレクトリ スタック エントリのインデックス。

省略した場合 +0 (最後のエントリ) が想定されます。

出口 status
エラーがない限り、popd ビルトインの終了ステータスは 0 です。

Notes
ディレクトリ スタック エントリが 1 つしかない場合にこの組み込みを使用するとエラーになります。

Popd ビルトインは POSIX 標準では定義されていません。

印刷 BUILT-IN


当学校区の printf 内蔵 フォーマットされた値を出力します。

構文
· printf 形式でアーカイブしたプロジェクトを保存します. [...]

詳細説明
printf 組み込みフォーマット によると 形式でアーカイブしたプロジェクトを保存します. 標準に合わせて印刷します
出力。 echo ビルトインとは異なり、printf ビルトインは改行を出力しません。
自動的に。

書式設定プロセスは、C プログラミングの printf 関数のプロセスと非常によく似ています。
言語。変換仕様 (で始まるもの) を使用できます。 %) とエスケープシーケンス
(で始まる \)in 形式でアーカイブしたプロジェクトを保存します.。変換の一部ではないその他の文字
仕様またはエスケープ シーケンスは文字通り出力されます。

変換 仕様
変換仕様はパーセント記号 (%).

以外の変換仕様 %% を消費します に従ってフォーマットされます。
仕様書と印刷物。各変換仕様は 1 つを消費します 会場は
登場順。もっとあれば 変換仕様よりも、
全体 形式でアーカイブしたプロジェクトを保存します. すべての条件が満たされるまで再処理されます。 が消費されます。もし ようにするには
消費された値が欠落している場合は、空の文字列とみなされます (仕様が指定されている場合)
文字列が必要です)またはゼロ(数値の場合)。いいえの場合 sが与えられ、 形式でアーカイブしたプロジェクトを保存します. 処理されます
一度だけ。

利用可能な変換仕様は次のとおりです。

%d, %i
符号付き整数を 10 進数で出力します

%u
符号なし整数を 10 進数で出力します

%o
符号なし整数を 8 進数で出力します

%x
符号なし整数を小文字の 16 進数で出力します

%X
符号なし整数を大文字の 16 進数で出力します

%f
浮動小数点数を小文字で出力します

%F
浮動小数点数を大文字で出力します

%e
浮動小数点数を指数を小文字で出力します

%E
浮動小数点数を指数を大文字で出力します

%g
と同じ %f or %e、自動的に選択されます

%G
と同じ %F or %E、自動的に選択されます

%c
文字列の最初の文字を出力します

%s
文字列を出力します

%b
文字列を出力します (エコー組み込みのようなエスケープ シーケンスを認識します)

%%
パーセント記号を出力します (%)

%g   %G、実際に使用される仕様は次のとおりです。 %f or %F 指数の場合
部分は -5 から精度 (排他的) の間です。 %e or %E さもないと。

以外の変換仕様では %%、先頭のパーセント記号の後に続く場合があります。
フラグ、フィールド幅、精度の順です。

フラグは、次の任意の数の文字のシーケンスです。

マイナス記号 (-)
このフラグを使用すると、フォーマットされた値にスペースが追加されてフィールドに埋め込まれます。
幅。それ以外の場合は、スペースが先頭に追加されます。

プラス記号 (+)
プラス記号またはマイナス記号は常に数値の前に付加されます。

空間 ( )
フォーマットされた数値にプラス記号またはマイナス記号がない場合、その先頭にスペースが追加されます。

ハッシュ記号 (#)
値は次のような代替形式でフォーマットされます。 %o、出力された 8 進整数
少なくとも 1 つの先行ゼロが必要です。のために %x   %X、ゼロ以外の整数は次のようにフォーマットされます。
0x   0X それぞれプレフィックス。のために %e, %E, %f, %F, %g, %G、小数点
(別名基数文字) は、値が正確な整数であっても常に出力されます。
%g   %G、印刷された数値の小数部に少なくとも 1 桁が含まれています。

零 (0)
フィールド幅いっぱいになるように、書式設定された数値の先頭にゼロが付加されます。この旗は
マイナスフラグが指定されている場合、または変換指定が指定されている場合は無視されます。
%d, %i, %u, %o, %xまたは %X 正確に。

フィールド幅は、先頭にゼロのない 10 進整数として指定されます。

フィールド幅は、フォーマットされた値の最小バイト数を定義します。フォーマットされている場合は、
値が最小バイト数に達していないため、多くのスペースが先頭に追加されます。
出力される値には指定されたバイト数が含まれます。

精度はピリオド (.) の後に 10 進整数が続きます。整数の場合
ピリオドの後に省略すると、精度はゼロとみなされます。

変換仕様について %d, %i, %u, %o, %x, %X、精度は
最小桁数。フォーマットされた整数が最小桁数に達しない場合、
非常に多くのゼロが先頭に付加されるため、出力される整数には指定された数のゼロが付加されます。
数字。これらの変換仕様のデフォルトの精度は 1 です。

変換仕様について %e, %E, %f, %F、精度は次の数を定義します。
小数点以下の数字。これらの変換のデフォルトの精度は 6 です。
仕様。

変換仕様について %g, %G、精度は最大数を定義します。
出力される値の有効数字。これらのデフォルトの精度は 6 です。
変換仕様です。

変換仕様について %s, %b、精度は最大バイト数を定義します。
印刷された文字列。これらの変換のデフォルトの精度は無限大です。
仕様。

変換仕様では %08.3f、ゼロフラグが指定され、フィールド幅は
8、精度は 3 です。この仕様を値 12.34 に適用すると、出力は
なります 0012.340.

エスケープ シーケンス
次のエスケープ シーケンスが認識されます。 形式でアーカイブしたプロジェクトを保存します.:

\a
ベル文字(ASCIIコード:7)

\b
バックスペース(ASCIIコード:8)

\f
改ページ文字(ASCIIコード:12)

\n
改行文字(ASCIIコード:10)

\r
キャリッジリターン文字(ASCIIコード:13)

\t
水平タブ文字(ASCIIコード:9)

\v
垂直タブ文字(ASCIIコード:11)

\\
バックスラッシュ

\"
ダブルクォーテーション

\'
一重引用符(アポストロフィ)

\XXX
コードが次の文字 XXXここで、 XXX 最大 3 桁の 8 進数です。

オペランド
形式でアーカイブしたプロジェクトを保存します.
方法を定義する文字列 をフォーマットする必要があります。

s
に従ってフォーマットされた値 形式でアーカイブしたプロジェクトを保存します..

値は数値または文字列のいずれかです。

数値が必要な場合は、 単一引用符または二重引用符を続けることができます
通常の数字の代わりに文字で指定します。たとえば、次のコマンドは printf '%d' 「3」
印刷します 51 典型的な環境では、キャラクターが 3 文字コードは51です。

出口 status
printf 組み込み関数の終了ステータスは、エラーがない限り 0 です。

Notes
POSIX 標準では、マルチバイト文字をどのように処理するかを正確に定義していません。
内蔵の。を使用するときは、 %s 精度の高い変換指定、または %c
変換仕様では、フォーマットされた値が指定されていない場合、予期しない結果が得られる可能性があります。
複数バイトで表される文字が含まれています。 Yash は印刷のみを行うことはありません
単一のマルチバイト文字を表すバイトの一部。すべてマルチバイト文字であるため、
文字は、シェルで処理されるときにワイド文字に変換されます。

PUSHD BUILT-IN


当学校区の pushdは 内蔵 ディレクトリをディレクトリ スタックにプッシュします。

構文
· pushdは [-L|-P] [ディレクトリにジョブを開始します。]

詳細説明
Pushd ビルトインは作業ディレクトリを次のように変更します。 ディレクトリにジョブを開始します。 CDと同じように
が組み込まれており、ディレクトリ スタックに追加されます。作業ディレクトリを変更できなかった場合
正常に完了すると、スタックは変更されません。

オプション
Pushd ビルトインは、次のオプションと使用できるオプションを受け入れます。
CD 内蔵の場合:

--重複の削除
新しい作業ディレクトリがすでにディレクトリ スタックに存在する場合、既存の
新しいディレクトリがスタックにプッシュされる前に、エントリがスタックから削除されます。

オペランド
ディレクトリにジョブを開始します。
新しい作業ディレクトリのパス名。

If ディレクトリにジョブを開始します。 単一のハイフン (「-」)、の値です。 OLDPWD 変数は次のように仮定されます
新しいディレクトリのパス名。標準出力に出力されます。

If ディレクトリにジョブを開始します。 プラスまたはマイナス記号が付いた整数である場合、エントリとみなされます。
ディレクトリスタックのインデックス。エントリはスタックから削除され、スタックにプッシュされます。
再びスタック。

If ディレクトリにジョブを開始します。 を省略した場合、作業ディレクトリは指定されたディレクトリに変更されます
を通じて、タンピングされたコーヒーベッドの上から均一にフィルターバスケットの内の粉に浸透していきます。 --デフォルトディレクトリ=... オプション。そのオプションも指定されていない場合、
デフォルトはインデックスです +1.

出口 status
エラーがない限り、pushd ビルトインの終了ステータスは 0 です。

Notes
Pushd ビルトインは、POSIX 標準では定義されていません。

PWD BUILT-IN


当学校区の pwd 内蔵 現在の作業ディレクトリを出力します。

構文
· pwd [-L|-P]

詳細説明
pwd ビルトインは、シェルの現在の作業ディレクトリへの絶対パスを出力します。
標準出力。

オプション
-L, -論理的
の値が PWD 変数はシェルの作業ディレクトリへの絶対パスです。
パスには何も含まれていません . or .. コンポーネントの場合、パスが出力されます。
それ以外の場合、印刷されるパスは、 -P オプションが指定されています。

-P, - 物理的
印刷されたパスには何も含まれていません . or .. コンポーネント、シンボリック リンク コンポーネント、
または冗長なスラッシュ。

当学校区の -L (-論理的)と -P (- 物理的) オプションは相互に排他的です: 最後のオプションのみです
指定されたものが有効です。どちらも指定されていない場合は、 -L 想定されます。

出口 status
エラーがない限り、pwd 組み込みの終了ステータスは 0 です。

Notes
pwd ビルトインは、準特殊なビルトインです。

お客様の声は BUILT-IN


当学校区の read 内蔵 標準入力から行を読み取ります。

構文
· read [-エア] [-P|-p] 変数...

詳細説明
read 組み込み関数は、標準入力から文字列の行を読み取り、それを
指定された変数。

Status -r (--raw-モード) オプションが指定されている場合、その行内のすべての文字が扱われます
文字通り。

Status -r (--raw-モード) オプションが指定されていない場合、行内のバックスラッシュは次のように扱われます。
引用。バックスラッシュが行末にある場合、行として扱われます。
継続。組み込み関数が次の行を読み取るとき、 PS2 変数はプロンプトとして使用されます
シェルが対話型で、標準入力が端末の場合。

入力行はフィールド分割の対象になります。結果の単語は次のように割り当てられます。
変数順番に。それ以上の単語がある場合は、 変数s、最後の変数が割り当てられます
残りのすべての単語 (単語が分割されていないかのように)。単語が以下の場合
変数s の場合、残りの変数には空の文字列が割り当てられます。

オプション
-A, - 配列
最後にする 変数 配列。残りの値を連結して代入する代わりに、
単語を通常の変数に代入すると、単語は配列に割り当てられます。

-e, --行編集
行編集を使用して行を読み取ります。

行編集を使用するには、次の条件もすべて満たす必要があります。

· シェルは対話型です。

· vi または emacs オプションが有効になっている。

・標準入力と標準エラーは端子に接続されています。

-P, --ps1
印刷する PS1 シェルが次の場合、(最初の) 行を読み取る前にプロンプ​​トとして変数
対話型であり、標準入力は端末です。

-p プロンプト, --プロンプト=プロンプト
指定されたものを印刷します プロンプト シェルが対話型の場合は、(最初の) 行を読み取る前に
標準入力は端末です。

-r, --raw-モード
バックスラッシュを引用符として扱わないでください。

オペランド
変数s
入力単語が割り当てられる変数の名前。

出口 status
エラーがない限り、読み取り組み込みの終了ステータスは 0 です。

を読み取る前に入力の終わりに遭遇した場合、終了ステータスはゼロ以外になることに注意してください。
行全体。

Notes
読み取り組み込みは、準特殊な組み込みです。

POSIX 標準では、 -r オプションのみ: 他のオプションは使用できません。
POSIX 的に正しいモード。

当学校区の PS1R   PS1S 変数が行編集の動作に影響を与えるのは、 PS1 プロンプトが使用されます。
についても同様です PS2.

読み取り専用 BUILT-IN


当学校区の 読み取り専用 内蔵 変数と関数を読み取り専用にします。

構文
· 読み取り専用 [-pxX] [[=] ...]

· 読み取り専用 -f[p] [...]

詳細説明
readonly 組み込みは、タイプセット組み込みと同等です。 -gr オプションを選択します。

Notes
readonly ビルトインは特別なビルトインです。

POSIX 標準では、 -p オプションのみ。他のオプションは使用できません
POSIX 的に正しいモード。 POSIX では、このオプションをオペランドと一緒に使用することはできません。

リターン BUILT-IN


当学校区の return 内蔵 関数またはスクリプトから返されます。

構文
· return [-NS] [終了ステータス]

詳細説明
なしで実行すると、 -n (- 返品不可) オプションを使用すると、次のいずれかが発生します。

· シェルが関数を実行している場合、関数の実行は終了します。

· ドット組み込みがスクリプトを実行している場合、スクリプトの実行は終了します。

· シェルが初期化中にスクリプトを実行している場合、スクリプトの実行
終了します。

· シェルがトラップを実行している場合、トラップの実行は一定期間終了します。
現在処理されている信号。

· それ以外の場合、シェルは対話型でない限り終了します。

で実行すると、 -n (- 返品不可) オプションを使用すると、組み込み関数は何も行いません。
指定の 終了ステータス.

オプション
-n, - 返品不可
関数、スクリプト、トラップ、またはシェルを終了しないでください。

オペランド
終了ステータス
組み込みの終了ステータス。

値は負ではない整数である必要があります。

省略した場合、最後に実行したコマンドの終了ステータスが使用されます。 (しかし、シェルが
トラップを実行中、トラップが使用される前の最後のコマンドの終了ステータス)。

出口 status
return 組み込みの終了ステータスは、 終了ステータス オペランド。出口
status は、終了した関数、スクリプト、またはシェルの終了ステータスとしても使用されます。

Notes
return 組み込みは特別な組み込みです。

POSIX 標準では、 終了ステータス オペランドは 0 ~ 255 の範囲にする必要があります
(包括的)。 Yash は 255 より大きい整数を拡張子として受け入れます。

POSIX 標準では、リターン組み込みの動作は、シェルが実行された場合にのみ定義されます。
関数またはスクリプトを実行しています。

POSIX 標準では、組み込み戻り値のオプションは定義されていません。組み込みはいいえを受け入れます
POSIX 的に正しいモードのオプション。

セット BUILT-IN


当学校区の セッションに 内蔵 シェルのオプションと位置パラメータを設定します。

構文
· セッションに [オプションs] [オペランドs]

· セッションに -o

· セッションに +o

set 組み込みでは、すべてのオプションがオペランドよりも前にある必要があります。任意のコマンドライン引数
最初のオペランド以降はすべてオペランドとして扱われます。

詳細説明
コマンド引数なしで実行すると、組み込み関数は既存のすべてのリストを出力します。
復元するコマンドとして再利用できる形式で標準入力に変数を追加します。
変数の定義。

日時 -o が唯一のコマンド引数である場合、組み込み関数はシェル オプションのリストを出力します。
現在の設定。いつ +o は唯一のコマンド引数です。組み込みの出力コマンドです。
現在のシェル オプション設定を復元するために再利用できます。

他の場合には、組み込みはシェル オプション設定や位置パラメータを変更します。

オプション
1 つ以上のオプションが指定されると、組み込みによってシェルが有効または無効になります。
オプション。通常のハイフン接頭辞付きオプションは、シェル オプションを有効にします。というオプションです
先頭にプラス (+ハイフンの代わりに ) を使用すると、シェル オプションが無効になります。たとえば、オプション
-m, -o モニター, - モニター 監視オプションとオプションを有効にする +m, +o モニター,
++モニター 無効にします。

長いオプションの名前は大文字と小文字が区別されず、関連性のない非英数字が含まれる場合があります。
文字は無視されます。たとえば、オプション --le-comp-debug   --LeCompDebug  
同等。もし いいえ 長いオプションの名前の前に が付加されると、意味が逆になります。のために
例、 --noallexport に相当します ++allexport   ++通知しない 〜へ -通知する.

オプションは次のいずれかの形式で指定できます。

· 長いオプション 例: --alexport

-o オプション名を引数として指定したオプション。 -o すべてエクスポート

· 単一文字のオプション。例: -a

すべてのオプションを 1 文字のオプションとして指定できるわけではありません。

使用可能なオプションは次のとおりです。

すべてエクスポート (-a)
有効にすると、割り当て時にすべての変数が自動的にエクスポートされます。

中括弧展開
このオプションは中括弧の展開を有効にします。

ケースグロブ
(デフォルトで有効) 有効にすると、パターン マッチングではパス名の大文字と小文字が区別されます。
拡張。

クロバー(+C)
(デフォルトで有効) 有効にすると、 >リダイレクトは、 >|
リダイレクション。

cur-async、cur-bg、cur-stop
(デフォルトで有効) これらのオプションは、現在のジョブの選択に影響します (ジョブ ID を参照)。

ドットグロブ
有効にすると、ファイル名の先頭のピリオドは特別に処理されません。
パス名の展開。

エマックス
このオプションにより、emacs モードでの行編集が有効になります。

エラー終了 (-e)
有効にすると、パイプラインがゼロ以外の終了ステータスで終了すると、シェルはただちに
以下の場合を除いて終了します。

· パイプラインは if コマンド、while または until ループの条件です。

· パイプラインには接頭辞が付けられます !、または

· パイプラインは、サブシェル グループを除く単一の複合コマンドです。

実行(+n)
(デフォルトで有効) コマンドは、このオプションが有効な場合にのみ実際に実行されます。
それ以外の場合、コマンドは解析されるだけで実行されません。このオプションを無効にすると、
構文チェックに役立ちます。対話型シェルでは、このオプションは常に想定されます。
有効になりました。

拡張グロブ
このオプションは、パス名展開での拡張を有効にします。

グロブ (+f)
(デフォルトで有効) このオプションにより、パス名の拡張が有効になります。

ハッシュオンデフ (-h)
このオプションが有効なときに関数が定義されると、シェルはただちに実行します。
関数内に出現する各コマンドのコマンド パスを検索し、
コマンドのフルパス。

履歴空間
有効にすると、空白で始まるコマンドラインはコマンドに保存されません。
歴史。

無視-eof
有効にすると、EOF (ファイルの終わり) が入力されても対話型シェルは終了しません。これ
誤って Ctrl-D を押したときにシェルが終了するのを防ぎます。

le-always-rp、le-comp-debug、le-conv-meta、le-no-conv-meta、le-prompt-sp、le-visible-bell
行編集に関するシェル オプションを参照してください。

マークディレクトリ
有効にすると、パス名展開時に結果のディレクトリ名の末尾にスラッシュが付けられます。

モニター(-m)
このオプションによりジョブ制御が有効になります。このオプションは、対話型の場合はデフォルトで有効になっています。
シェル。

通知する(-b)
このオプションが有効になっているときにジョブのステータスが変化すると、シェルはただちに
随時通知します。このオプションは、notify-le オプションをオーバーライドします。

通知ル
このオプションは通知オプションに似ていますが、ステータスの変更のみが通知されます。
シェルが行編集による入力を待っている間。

ヌルグロブ
有効にすると、パス名展開でどのパス名にも一致しないパターンが表示されます。
そのままにするのではなく、コマンドラインから削除します。

確実に正しい
このオプションは、POSIXly-correct モードを有効にします。

すべてのトレース
(デフォルトで有効) このオプションが無効になっている場合、x-trace オプションは一時的に無効になります。
シェルが定義されたコマンドを実行している間は無効になります。
COMMAND_NOT_FOUND_HANDLER, プロンプト_コマンドまたは YASH_AFTER_CD 変数に保存します.

設定を解除(+u)
(デフォルトで有効) 有効にすると、未定義のパラメータが空の文字列に展開されます。
パラメータ展開中。無効にすると、未定義のパラメータを展開すると、
エラー。

冗長 (-v)
有効にすると、シェルは解析する前に各コマンド ラインを標準エラーに出力します。
そしてそれを実行するのです。

vi
このオプションにより、vi モードでの行編集が有効になります。このオプションはデフォルトで有効になっています。
標準入力とエラーが両方とも端末の場合は対話型シェル。

X-トレース (-x)
有効にすると、展開の結果が各ファイルの標準エラーに出力されます。
単純なコマンドが実行されています。印刷すると、各行の先頭に展開が追加されます。
の結果 PS4 変数。 「trace-all」オプションも参照してください。

オペランド
1 つ以上のオペランドが組み込みセットに渡される場合、現在の位置パラメータは次のようになります。
すべて削除され、オペランドが新しい位置パラメータとして設定されます。もし -- セパレーター
(コマンド引数の構文を参照) が渡されると、位置パラメータは次の場合でも設定されます。
オペランドがないため、新しい位置パラメータは何もありません。

出口 status
エラーがない限り、セット組み込みの終了ステータスは 0 です。

Notes
セットの内蔵は特殊な内蔵です。

POSIX 標準では、利用可能なシェル オプションはかなり制限されています。標準ではそうではありません
定義する:

・長いオプションなど --alexport,

· 先頭に追加 いいえ オプションを否定するには、

· オプション名に大文字や英数字以外の文字を使用する

標準で定義されているオプションは次のとおりです。

· -a, -o すべてエクスポート

· -e, -o エラー

· -m, -o モニター

· -C, -o ノークロバー

· -n, -o noexec

· -f, -o ノグロブ

· -b, -o 通知する

· -u, -o 名詞セット

· -v, -o 詳細

· -x, -o トレース

· -h

· -o 無視する

· -o ノーログ

· -o vi

Yash は、関数定義を無効にする nolog オプションをサポートしていません。
コマンド履歴に追加されます。

SHIFT BUILT-IN


当学校区の シフト 内蔵 いくつかの位置パラメータを削除します。

構文
· シフト [カウント]

詳細説明
組み込みのシフトは最初のを削除します カウント 位置パラメータ。

オペランド
カウント
削除する位置パラメータの数。

位置パラメータの実際の数が以下の場合はエラーになります。 カウント。 場合
省略した場合、デフォルト値は 1 です。

出口 status
エラーがない限り、シフト組み込みの終了ステータスは 0 です。

Notes
シフト内蔵は特殊な内蔵です。

位置パラメータの数は次のコマンドで取得できます。 # 特別なパラメータ。

つるす BUILT-IN


当学校区の サスペンド 内蔵 シェルを一時停止します。

構文
· サスペンド [-NS]

詳細説明
サスペンド組み込みは、SIGSTOP シグナルをプロセス グループ内のすべてのプロセスに送信します。
シェルプロセスが属します。シグナルはプロセス (シェルを含む) を一時停止します。の
一時停止されたプロセスは、SIGCONT シグナルを受信すると再開されます。

シェルが対話型で、そのプロセス グループ ID がシェルのプロセス ID と等しい場合、
セッションリーダーの場合、シェルは警告メッセージを出力し、そうでない限りシグナルの送信を拒否します。
-f (- 力)オプションを指定しています。 (このような場合、他にジョブを制御するシェルはありません
SIGCONT シグナルを送信して一時停止されたシェルを再開できるため、シェルが再開されることはありません。
再開しました。)

オプション
-f, - 力
シェルがシグナルを送信するのを妨げる警告を抑制します。

出口 status
シグナルが正常に送信された場合、終了ステータスは 0 になり、それ以外の場合は 0 以外になります。

Notes
サスペンド組み込み機能は、POSIX 標準では定義されていません。

テスト BUILT-IN


当学校区の test 内蔵 式を評価します。

構文
· test 表現

· [ 表現 ]

テスト組み込みはオプションとオペランドを区別しません。すべてのコマンドライン引数
として解釈されます 表現。組み込みが次の名前で実行される場合 [, 表現
その後に続けなければなりません ].

詳細説明
テスト組み込みの評価 表現 で構成される条件式として
演算子とオペランドについては以下で説明します。条件が true の場合、終了ステータスは 0 です。
それ以外の場合は1。

以下の単項演算子はファイルをテストします。オペランドの場合 file はシンボリックリンク、ファイルです
リンクで参照されている部分はテストされています (例外を除きます)。 -h   -L 演算子)。

-b file
file ブロック特殊ファイルです

-c file
file 文字型スペシャルファイルです

-d file
file ディレクトリです

-e file
file 存在

-f file
file 通常のファイルです

-G file
fileのグループ ID はシェルの実効グループ ID と同じです

-g file
fileの set-group-ID フラグが設定されています

-h file
-Lと同じ

-k file
fileのスティッキービットが設定されています

-L file
file シンボリックリンクです

-N file
file 最後に変更されてからアクセスされていません

-O file
fileのユーザー ID はシェルの実効ユーザー ID と同じです

-p file
file FIFO (名前付きパイプ) です

-r file
file 読める

-S file
file ソケットです

-s file
file 空ではない

-u file
fileの set-user-ID フラグが設定されています

-w file
file 書き込み可能です

-x file
file 実行可能です

以下の単項演算子はファイル記述子をテストします。

-t fd
fd 端末に関連付けられています

以下の単項演算子は文字列をテストします。

-n string
string 空ではない

-z string
string 空です

以下の単項演算子はシェル オプションをテストします。

-o ?オプション
オプション 有効なシェル オプション名です

-o オプション
オプション 有効なシェル オプション名です。

以下の二項演算子はファイルを比較します。存在しないファイルはどのファイルよりも古いとみなされます
既存のファイル。

file1 -nt file2
file1 より新しい file2

file1 -ot file2
file1 より古い file2

file1 -もしも file2
file1 へのハードリンクです file2

以下の二項演算子は文字列を比較します。

string1 = string2
string1 と同じ文字列です string2

string1 != string2
string1 と同じ文字列ではありません string2

以下の二項演算子は、文字列のアルファベット順に従って文字列を比較します。
現在のロケール:

string1 === string2
string1 等しい string2

string1 !== string2
string1 等しくない string2

string1 < string2
string1 よりも少ない string2

string1 <= string2
string1 より小さいか等しい string2

string1 > string2
string1 より大きい string2

string1 >= string2
string1 より大きいか等しい string2

以下の二項演算子はパターン マッチングを実行します。

string =~ パターン
拡張正規表現 パターン マッチ string

以下の二項演算子は整数を比較します。

v1 -eq v2
v1 等しい v2

v1 ネオン v2
v1 等しくない v2

v1 -gt v2
v1 より大きい v2

v1 -与える v2
v1 より大きいか等しい v2

v1 -lt v2
v1 よりも少ない v2

v1 -LE v2
v1 より小さいか等しい v2

以下の二項演算子はバージョン番号を比較します。

v1 -veq v2
v1 等しい v2

v1 -vne v2
v1 等しくない v2

v1 -vgt v2
v1 より大きい v2

v1 -vge v2
v1 より大きいか等しい v2

v1 -vlt v2
v1 よりも少ない v2

v1 -vle v2
v1 より小さいか等しい v2

以下の演算子を使用して複雑な式を作成できます。

! 表現
結果を否定(逆転)する

( 表現 )
演算子の優先順位を変更する

式1 -a 式2
論理積 (および)

式1 -o 式2
論理和 (または)

式が演算子のない単一の単語の場合、 -n 演算子が想定されます。空っぽ
式は false と評価されます。

比較 of バージョン 番号
バージョン番号の比較は、アルファベット順の文字列の比較に似ています。
違いは次のとおりです。

・隣り合う数字は整数として扱われます。整数は数学的に比較されます
アルファベット順ではなく順番です。

· 数字は、数字以外の文字よりも大きいとみなされます。

たとえば、バージョン番号 0.1.2-3   00.001.02-3 等しいし、 0.2.1 小さいです
より 0.10.0.

出口 status
次の場合、テスト組み込みの終了ステータスは 0 です。 表現 が true、そうでない場合は 1。出口
ステータスが 2 の場合 表現 構文エラーまたはその他の理由で評価できません
理由。

Notes
複雑な表現は混乱を招く可能性があるため、避けてください。シェルのコンパウンドを使用する
コマンド。 例えば、 [ 1 -eq 1 ] && [ -t = 1 ] && ! [ foo ] よりも好まれる [ 1 -eq 1
-a -t = 1 -a ! foo ].

POSIX 標準では、エラー時の終了ステータスは 1 より大きくなければならないと規定されています。の
POSIX 標準では、次の演算子が定義されていません。 -nt, -ot, -もしも, ==, ===, !==, <,
<=, >, >=, =~, -veq, -vne, -vgt, -vge, -vlt, -vle。 POSIX ではど​​ちらも指定されていない -o として
単項演算子。

タイムズ BUILT-IN


当学校区の 回数 内蔵 CPU 時間の使用状況を出力します。

構文
· 回数

詳細説明
組み込みの時間は、シェル プロセスとその子によって消費された CPU 時間を出力します。
標準出力に処理します。

この組み込みは 2 行を出力します。最初の行はシェル プロセスの CPU 時間を示し、もう 1 行目はシェル プロセスの CPU 時間を示します。
2 番目のプロセスは、その子プロセスのプロセス (まだ実行されていないプロセスは含まれません)
終了しました)。各行は、ユーザー モードとシステム モードで消費された CPU 時間を示します。

出口 status
エラーがない限り、times 組み込みの終了ステータスは 0 です。

Notes
タイムビルトインは特別なビルトインです。

トラップ BUILT-IN


当学校区の トラップ 内蔵 シグナルハンドラーを設定または出力します。

構文
· トラップ

· トラップ アクション 信号...

· トラップ 信号番号 [信号...]

· トラップ -p [信号...]

詳細説明
トラップ組み込みは、シェルがシグナルを受信したときに実行されるアクションを設定または出力します。
(これらのアクションは トラップ.)

で実行すると アクション そしてXNUMXつ以上の 信号s、ビルトインはトラップを設定します 信号s
〜へ アクション。シェルがいずれかのシグナルを受信すると、アクションが実行されます。

最初のオペランドが 信号番号 アクション、組み込みはトラップをリセットします
信号番号   信号まるで アクション ました -.

で実行すると、 -p (-印刷) オプションを使用するか、オペランドを指定しないと、組み込みの出力が表示されます。
現在、トラップをコマンドとして実行できる形式で標準出力に設定しています
現在のトラップを復元します。 1 つ以上の場合 信号が指定されている場合、それらの信号のみが指定されます
が印刷されています。それ以外の場合は、デフォルト以外のアクションを持つすべての信号が出力されます。 (一部では
ただし、状況によっては、組み込み機能が現在のトラップ設定ではなく以前のトラップ設定を出力する場合があります。
以下の注記を参照してください。)

オプション
-p, -印刷
現在のトラップ設定を出力します。

オペランド
アクション
場合に実行されるアクション 信号 が受信される。

If アクション 単一のハイフン (-)、アクションはデフォルトのアクションにリセットされます。
オペレーティング システムによって定義されます。もし アクション 空の文字列の場合、シグナルは無視されます
受け取り時に。さもないと、 アクション コマンド文字列として扱われます。文字列は解析され、
信号を受信するとコマンドとして実行されます。 (通信中​​に信号を受信した場合、
コマンドが実行されている場合、アクションはコマンドの終了直後に実行されます。)

信号
信号の番号または名前。

If 信号 は数です 0 または名前 EXIT、特別な虚数信号として扱われます。
シェルが終了するときに常に受信されます。このシグナルに設定されたアクションは、次の場合に実行されます。
シェルは正常に終了します。

信号番号
これは 信号、ただし数値でなければなりません。

出口 status
エラーがない限り、組み込みトラップの終了ステータスは 0 です。

Notes
トラップ内蔵は特殊な内蔵です。

POSIX 標準では、シグナル名を指定する必要があります。 SIG-プレフィックス、
ような INT   QUITを。拡張機能として、yash は受け入れます SIG- のような接頭辞付きの名前 SIGINT  
そんなに また、信号名は大文字と小文字を区別せずに処理されます。

再利用 出力 of   内蔵
組み込みトラップの出力は変数に保存でき、後でそれを実行できます。
トラップを復元するための eval 組み込み。

Saved_traps=$(トラップ)
トラップ「...」INT
eval "$saved_traps"

このイディオムを許可するには、舞台裏でいくつかのトリックがあります。コマンドを使用します
変数に組み込まれたトラップの出力を保存する置換。コマンド
置換はサブシェルで実行されます。サブシェルはすべてのトラップをリセットします(無視されたトラップを除く)
もの)それ自体の先頭にあります。これにより、(ほぼ)空の出力が得られるようです
組み込みからは、期待どおりにトラップを復元できません。

この落とし穴を避けるために、POSIX ではシェルが 2 つのオプションのいずれかに従う必要があります。
以下:

· コマンド置換に単一のトラップが組み込まれているだけの場合、トラップは使用できません。
サブシェルが組み込みを実行するために開始されるときにリセットされます。または

· サブシェルは常にトラップをリセットしますが、以前のトラップを記憶しています。罠なら
組み込みはサブシェルで実行されますが、他のトラップ組み込みは実行されていません
サブシェル内のトラップを変更するには、組み込み関数が記憶された内容を出力する必要があります。
トラップ。

ヤシュは二番目に従う。

TRUE BUILT-IN


当学校区の true 内蔵 何も成功しません。

構文
· true

詳細説明
本当の組み込みは何もしません。コマンドライン引数はすべて無視されます。

出口 status
真の組み込みの終了ステータスは 0 です。

Notes
本当のビルトインは、準特殊なビルトインです。

true とコロンの組み込みは同じ効果がありますが、true は準特殊な組み込みです。
一方、コロンは特別です。

タイプ BUILT-IN


当学校区の type 内蔵 コマンドを識別します。

構文
· type [-abefkp] [ command...]

詳細説明
組み込み型は、コマンド組み込み型と同等です。 -V オプションを選択します。

Notes
POSIX 標準では、タイプとコマンドの組み込み間の関係は定義されていません。
標準では、組み込みタイプのオプションは定義されていません。

少なくとも一つの command オペランドは POSIX 的に正しいモードで指定する必要があります。

タイプセット BUILT-IN


当学校区の タイプセット 内蔵 変数または関数を出力または設定します。

構文
· タイプセット [-gprxX] [変数[=] ...]

· タイプセット -f[pr] [function...]

詳細説明
なしで実行した場合、 -f (- 関数) オプション、タイプセット組み込みの印刷またはセット
変数を標準出力に出力します。それ以外の場合は、関数を出力または設定します。

で実行した場合、 -p (-印刷) オプション、組み込み関数は変数または関数を出力します。
オペランドで指定します。オプションを指定しないと、変数または関数が設定されます。オペランドがない場合
が指定されている場合、既存の変数または関数がすべて出力されます。 -p
(-印刷)オプションが指定されています。

オプション
-f, - 関数
変数ではなく関数を出力または設定します。

-g, - グローバル
新しい変数を設定するとき、このオプションがオンの場合、その変数はグローバル変数になります。
指定された。このオプションを使用しない場合、変数はローカル変数になります。

変数を出力する場合、グローバル変数を含むすべての既存の変数が出力されます。
このオプションが指定されている場合。このオプションを使用しない場合、ローカル変数のみが出力されます。

-p, -印刷
コマンドとして解析および実行できる形式で変数または関数を出力します。
現在設定されている変数または関数が復元されます。

-r, -読み取り専用
変数や関数を設定する場合は、読み取り専用にしてください。

変数または関数を出力する場合は、読み取り専用の変数または関数のみを出力します。

-x, - 書き出す
変数を設定するときは、変数をエクスポート対象としてマークします。そうすれば変数は次の場所にエクスポートされます。
外部コマンド。

変数を出力する場合は、エクスポートされた変数のみを出力します。

-X, --アンエクスポート
変数を設定する場合は、変数のエクスポートをキャンセルしてください。

オペランド
変数 (なし )
設定または出力される変数の名前。

なし -p (-印刷) オプションでは、変数は定義されています (まだ定義されていない場合)。
値は設定も変更もされません。値を指定せずに定義された変数は次のように扱われます。
パラメータ展開で設定を解除します。

変数=
変数の名前とその新しい値。

値は変数に割り当てられます ( -p (-印刷) オプション)。

function
設定または出力する既存の関数の名前。

出口 status
エラーがない限り、組込みタイプセットの終了ステータスは 0 です。

Notes
すでにローカル変数が定義されている場合、グローバル変数を新たに定義することはできません
同じ名前で。ローカル変数は、 -g (- グローバル)オプション。

POSIX 標準では、組み込みタイプセットは定義されていません。

エクスポートおよび読み取り専用の組み込みは、タイプセットの組み込みと同等です。 -gx  
-gr それぞれオプション。

ULIMIT BUILT-IN


当学校区の ulimit 内蔵 リソース制限を設定または出力します。

構文
· ulimit -a [-H|-S]

· ulimit [-H|-S] [-efilnqrstuvx] [制限]

詳細説明
ulimit ビルトインは、リソース制限を設定または出力します。

で実行した場合、 -a (- すべて) オプションを使用すると、組み込みはすべての現在の制限を出力します。
リソースの種類。それ以外の場合は、単一のリソース タイプの制限を設定または出力します。の
リソースタイプは以下のオプションで指定できます。リソース制限は、
現在のシェル プロセスとシェルから呼び出されるすべてのコマンドに影響します。

各リソース タイプには、ハード制限とソフト制限という 2 つの制限値があります。ソフトを変更できます
ハードリミットを超えない限り、自由に制限できます。ハードリミットを下げることができます
ただし、適切な許可なしにそれを増やすことはできません。

-H (- ハード)または -S (- 柔らかい) オプションが指定されている場合、組み込み関数は
それぞれハード制限またはソフト制限。どちらのオプションも指定されていない場合、組み込み
ハード制限とソフト制限の両方を設定するか、ソフト制限を出力します。

オプション
-H, - ハード
ハードリミットを設定または印刷します。

-S, - 柔らかい
ソフトリミットを設定または印刷します。

-a, - すべて
すべての電流制限設定を印刷します。

次のオプションはリソースのタイプを指定します。どれも指定されていない場合は、 -f is
デフォルト。設定できるリソースの種類はOSによって異なります。

-c, - 芯
作成されるコア ファイルの最大サイズ (512 バイト ブロック単位)

-d, - データ
プロセスのデータセグメントの最大サイズ (キロバイト単位)

-e, - 良い
最大スケジューリング優先度 ('nice')

-f, --fsize
プロセスによって作成されるファイルの最大サイズ (512 バイトのブロック単位)

-i, -- 署名待ち
保留中のシグナルの最大数

-l, --memlock
RAMにロックできる最大メモリサイズ(キロバイト単位)

-m, --RSS
プロセスの常駐セットの最大サイズ (キロバイト単位)

-n, - ファイルがない
最大ファイル記述子 + 1

-q, --msgqueue
POSIXメッセージキューの最大サイズ

-r, --rtprio
リアルタイム スケジューリングの最大優先度

-s, - スタック
プロセスのスタックの最大サイズ (キロバイト単位)

-t, - CPU
プロセスが使用できる最大 CPU 時間 (秒単位)

-u, --nproc
ユーザーの最大プロセス数

-v, - として
プロセスが使用するメモリの最大サイズ (キロバイト単位)

-x, --ロック
ファイルロックの最大数

オペランド
制限
設定する制限。

値は負でない整数、または次のいずれかである必要があります。 ハード, ソフト, 無限の。 場合
is ハード or ソフト、新しい制限は現在のハード制限またはソフト制限に設定されます。もし 制限 is
指定されていない場合は、現在の制限値が出力されます。

出口 status
エラーがない限り、ulimit 組み込みの終了ステータスは 0 です。

Notes
POSIX 標準では、以下のオプション以外のオプションは定義されていません。 -f。どちらも定義しない ハード, ソフトまたは
無限の制限 値。

うまく BUILT-IN


当学校区の umask 内蔵 ファイルモード作成マスクを設定または出力します。

構文
· umask mask

· umask [-NS]

詳細説明
なしで実行した場合、 mask オペランド、組み込み関数は現在のファイル モード作成を出力します。
シェルのマスクを、後で使用できる形式で標準出力に出力します。 mask 〜へ
現在のマスクを復元します。

それ以外の場合、組み込みはファイル モード作成マスクを次のように設定します。 mask.

オプション
-S, - シンボリック
8 進整数形式ではなく記号形式で出力します。

オペランド
mask
シンボリック形式または 8 進整数形式の新しいファイル モード作成マスク。

オクタル 整数 フォーム
8 進整数形式では、マスクは負でない 8 進整数として指定されます。
は、次の権限の合計です。

0400
所有者による読み取り

0200
所有者による書き込み

0100
所有者による実行/検索

0040
グループで読む

0020
グループごとに書く

0010
グループで実行/検索

0004
他人に読まれる

0002
他人が書く

0001
他で実行・検索

シンボリック フォーム
シンボリック形式では、マスクは次のことを示すシンボリック式として指定されます。
許可 マスクに含まれています。

式全体は 1 つ以上です はカンマで区切られます。あ  
のシーケンス whos の後に 1 つ以上が続く アクションs.

A who の一つであります:

u
所有者

g
グループヘッド

o
others

a
オーナー、グループ、その他全員

空のシーケンス whos は who に相当します a.

An アクション あります オペレータ 続い 許可 オペレータ の一つであります:

=
セッションに whoの許可 許可

+
加えます 許可 〜へ whoの許可

-
削除します 許可 from whoの許可

  許可 の一つであります:

r
read

w
書きます

x
実行/検索

X
実行/検索 (一部のユーザーがすでに実行/検索権限を持っている場合のみ)

s
ユーザーIDの設定とグループIDの設定

u
ユーザーの現在の権限

g
グループの現在の権限

o
他の人の現在の権限

しかし、そのうちの 1 つ以上 r, w, x, X, s 単一の後に指定できます オペランド.

たとえば、コマンド umask u=rwx,go+rw

· ユーザーの読み取り、書き込み、および実行/検索権限のマスクを解除します。

· グループおよび他のユーザーの読み取り権限のマスクを解除します。そして

· グループおよび他のユーザーの書き込み権限をマスクします。

出口 status
エラーがない限り、umask 組み込みの終了ステータスは 0 です。

Notes
umask ビルトインは、準特殊なビルトインです。

POSIX 標準では、デフォルトの出力形式 (実行時に使用される) は必要ありません。 -S オプションがある
指定されていません) は 8 進整数形式になります。

ウナリアス BUILT-IN


当学校区の エイリアス 内蔵 エイリアスの定義を解除します。

構文
· エイリアス ...

· エイリアス -a

詳細説明
unalias 組み込みは、オペランドで指定されたエイリアスの定義を削除します。

オプション
-a, - すべて
すべてのエイリアスの定義を解除します。

オペランド

未定義にするエイリアスの名前。

出口 status
エラーがない限り、unalias 組み込みの終了ステータスは 0 です。エラーです
存在しないエイリアスの名前を指定するには、 .

Notes
unalias ビルトインは、準特殊なビルトインです。

UNSET BUILT-IN


当学校区の unset 内蔵 変数または関数の定義を解除します。

構文
· unset [-F V] [...]

詳細説明
unset 組み込みは、によって指定された変数または関数の定義を削除します。
オペランド。

指定された変数または関数が存在しない場合は、エラーにはなりません。彼らです
黙って無視されます。

オプション
-f, - 関数
関数の定義を解除します。

-v, -変数
変数を定義解除します。

これらのオプションは相互に排他的です。最後に指定したオプションのみが有効です。どちらでもない場合
指定されている、 -v 想定されます。

オペランド

未定義にする変数または関数の名前。

出口 status
エラーがない限り、unset 組み込みの終了ステータスは 0 です。

Notes
unset ビルトインは特別なビルトインです。

yash はそうしませんが、POSIX 標準では、次のいずれでもない場合に関数を削除することが許可されています。
  -f   -v オプションが指定されていますが、指定された変数は存在しません。

少なくとも一つの オペランドは POSIX 的に正しいモードで指定する必要があります。

待つ BUILT-IN


当学校区の wait 内蔵 ジョブが終了するのを待ちます。

構文
· wait [ジョブ...]

詳細説明
wait 組み込みは、バックグラウンド ジョブが終了するのを待ちます。ジョブ制御が有効な場合、
停止したジョブは終了したものとみなされます。

ジョブ制御が無効になっている場合、組み込みを使用して非同期コマンドを待機できます。

組み込みの待機中にシェルがシグナルを受信し、トラップが設定されている場合
シグナルの場合、トラップが実行され、組み込みはすぐに終了します (
ジョブを待っています)。ジョブ制御が有効なときにシェルが SIGINT シグナルを受信すると、
組み込みのアボートは待機しています。

オペランド
ジョブ
ジョブのジョブ ID またはジョブ内のプロセスのプロセス ID。

ない場合 ジョブが指定されている場合、組み込み関数はすべての既存のジョブを待機します。

指定されたジョブが存在しない場合、ジョブは終了したものとみなされます。
終了ステータスは 127 です。

出口 status
ない場合 ジョブが指定され、組み込み関数はすべてのジョブを正常に待機し、終了します。
ステータスはゼロです。 1 つ以上の場合 ジョブが指定された場合、終了ステータスは最後のステータスになります。
ジョブ.

組み込みがシグナルによって中止された場合、終了ステータスは整数 (> 128) になります。
信号を表します。他のエラーがあった場合、終了ステータスは 1 ~ 126 になります。
(包括的)。

Notes
wait 組み込みは、準特殊な組み込みです。

ジョブの最後のプロセスのプロセス ID は、 ! 特別なパラメータ。
組み込みのジョブを使用して、ジョブ プロセスのプロセス ID を取得することもできます。

onworks.net サービスを使用してオンラインで yash を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。