GoGPT Best VPN GoSearch

OnWorksファビコン

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

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

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

プログラム:

NAME


posh - ポリシーに準拠した通常の SHell

SYNOPSIS


ポーズ [+-aCefilnuvx] [+-o オプション]
[[-c コマンド文字列 [コマンド名] | -s | file ] [引数...]]

DESCRIPTION


ポーズ Bourne シェルの再実装であり、インタラクティブなコマンド インタプリタです。
そしてスクリプトの使用。

シェル(Shell) スタートアップ
次のオプションはコマンド ラインでのみ指定できます。

-c コマンド文字列
シェルは、以下に含まれるコマンドを実行します。 コマンド文字列

-i
インタラクティブモード - 以下を参照

-l
ログイン シェル — 以下を参照 対話モード — 以下を参照

-s
シェルは標準入力からコマンドを読み取ります。 オプション以外の引数はすべて位置指定です
パラメータ

上記に加えて、「」で説明されているオプション セッションに 組み込みコマンドも可能です
コマンドラインで使用されます。

どちらも -c-s オプションが指定されている場合、オプション以外の最初の引数
シェルがコマンドを読み取るファイルの名前を指定します。 オプション以外がない場合
引数を指定すると、シェルは標準入力からコマンドを読み取ります。 シェルの名前 (すなわち
の内容 $0) パラメータは次のように決定されます。 -c オプションが使用されており、そこにあります
はオプションではない引数であり、名前として使用されます。 コマンドがファイルから読み取られている場合、
ファイルは名前として使用されます。 それ以外の場合は、シェルが呼び出された名前 (すなわち、argv[0])
使用されている。

シェルは 相互作用的 もし -i オプションが使用されている場合、または標準入力と標準入力の両方が使用されている場合
エラーは tty に添付されます。 対話型シェルではジョブ制御が有効になっています (利用可能な場合)。
INT、QUIT、TERM 信号を無視し、入力を読み取る前にプロンプ​​トを出力します (「 PS1
  PS2 パラメーター)。

シェルは 特権を持つ もし -p オプションが使用されている場合、または実際のユーザー ID またはグループ ID が使用されていない場合
有効なユーザー ID またはグループ ID と一致します (「 取得(2) イライラする(2))。 特権シェル
$HOME/.profile を処理しません。 代わりに、ファイル /etc/suid_profile が処理されます。 クリアリング
特権オプションにより、シェルは実効ユーザー ID (グループ ID) を実際のユーザー ID に設定します。
ユーザー ID (グループ ID)。

名前のベース名が (すなわち, argv[0]) で始まります - または
  -l オプションが使用されると、シェルはログイン シェルであるとみなされ、シェルは次の内容を読み取ります。
の内容を実行します / etc / profile $HOME/.profile (存在し、読み取り可能な場合)。

コマンドラインでコマンドファイルが指定されている場合、シェルの終了ステータスは 127 になります。
開けませんでした。または、実行中に致命的な構文エラーが発生した場合は XNUMX 以外になります。
スクリプト。 致命的なエラーがない場合、終了ステータスは最後のコマンドのステータスになります。
実行されるか、コマンドが実行されない場合はゼロ。

Command 構文
シェルは入力を単語に分割することで解析を開始します。 単語、つまりシーケンスです
文字数は、引用符で囲まれていない空白文字 (スペース、タブ、改行) で区切られます。
またはメタ文字 (<、>、|、;、&、( および ))。 単語、スペース、タブを区切る以外にも
は無視されますが、通常は改行がコマンドを区切ります。 メタキャラクターは以下で使用されます。
次のトークンを構築します: <、<&、<<、>、>&、>> などはリダイレクトの指定に使用されます。
(以下の「入出力リダイレクト」を参照); | パイプラインの作成に使用されます。 ; 分離するために使用されます
コマンド。 & は非同期パイプラインを作成するために使用されます。 && と || を指定するために使用されます
条件付き実行。 ;; case ステートメントで使用されます。 そして最後に、( ... ) は、
サブシェルを作成します。

空白文字とメタ文字は、バックスラッシュ (\)、または
double (を使用したグループ")またはシングル(')引用。 以下の文字も含まれることに注意してください。
シェルによって特別に扱われるため、それ自体を表す場合は引用符で囲む必要があります。 \,
", ', #, $, `, ~, {, }, *, ?   [。 そのうちの最初の XNUMX つは上記で説明したものです
文字を引用する (以下の「引用」を参照)。 #、単語の先頭に使用すると、
コメント - コメント以降のすべて # 最も近い改行までは無視されます。 $ に使用されている
パラメータ、コマンド、および算術置換を導入します (下記の置換を参照)。 `
古いスタイルのコマンド置換を導入します (下記の置換を参照)。 ~ を開始します
ディレクトリの展開 (下記のチルダ展開を参照)。 {   } 区切り CSH(1) スタイルの変更
(下記の中括弧の展開を参照); そして最後に、 *, ?   [ ファイル名の生成に使用されます
(下記のファイル名パターンを参照してください)。

単語とトークンが解析されると、シェルはコマンドを構築します。そのコマンドには XNUMX つの基本的なものがあります。
タイプ: 単純なコマンド、通常は実行されるプログラム、および 複合コマンド、 そのような
as   if ステートメント、グループ化構造、関数定義。

単純なコマンドは、パラメータ割り当ての組み合わせで構成されます (「パラメータ」を参照)
下記)、入出力リダイレクト(以下の「入出力リダイレクト」を参照)、およびコマンド
言葉。 唯一の制限は、パラメータの割り当てがコマンド ワードの前に来ることです。
コマンド ワード (存在する場合) は、実行されるコマンドとその引数を定義します。
コマンドは、シェル組み込みコマンド、関数、または 外部 command, すなわち
別の実行可能ファイルは、 パス パラメータ (「コマンドの実行」を参照)
下)。 すべてのコマンド構造には 終了する status: 外部コマンドの場合、これ
によって返されるステータスに関連しています wait (2) (コマンドが見つからなかった場合、終了
ステータスは 127、実行できなかった場合、終了ステータスは 126)。 の終了ステータス
その他のコマンド構造 (組み込みコマンド、関数、複合コマンド、パイプライン、
リスト、 等々) はすべて明確に定義されており、構成が説明されている場所で説明されています。 の
パラメータの割り当てのみで構成されるコマンドの終了ステータスは、最後のステータスになります。
パラメータ割り当て中に実行されるコマンド置換、またはパラメータがない場合はゼロ
コマンドの置換。

コマンドは、 | フォームへのトークン パイプライン、ここで、
各コマンドの標準出力ですが、最後の出力はパイプ処理されます (「 パイプ(2))を標準入力に入力
次のコマンドの。 パイプラインの終了ステータスは、最後のコマンドの終了ステータスです。 あ
パイプラインには接頭辞が付けられる場合があります ! の終了ステータスを引き起こす予約語
論理的に補完されるパイプライン: 元のステータスが 0 の場合、補完されたパイプライン
ステータスは 1 になり、元のステータスが 0 でない場合、補完されたステータスは
0になります。

リスト 次のトークンのいずれかでパイプラインを区切ることで、コマンドの数を作成できます。
&&, ||, &, |&   ;。 最初の XNUMX つは条件付き実行用です。 cmd1 && cmd2 実行
cmd2 終了ステータスが次の場合のみ cmd1 ゼロです。 || はその逆です — cmd2 実行されるだけです
終了ステータスが cmd1 ゼロ以外です。 &&   || 同等の優先順位があり、どちらが高いか
それよりも &, |&   ;、これらも同様に優先されます。 の & トークンが原因で、
前のコマンドが非同期で実行される、つまりシェルがコマンドを開始する、
ただし、完了を待ちません(シェルはステータスを追跡します)
非同期コマンド — 以下のジョブ制御を参照してください)。 非同期コマンド起動時
ジョブ制御が無効な場合 (すなわち、ほとんどのスクリプトでは)、コマンドはシグナルで開始されます。
INT と QUIT は無視され、入力は /dev/null からリダイレクトされます (ただし、リダイレクトは行われます)
非同期コマンドで指定されたものが優先されます)。 コマンドが後に続く必要があることに注意してください
  &&   || 演算子が続きますが、コマンドを続ける必要はありません &, |&   ;。 の終了ステータス
list は、非同期リストを除き、最後に実行されたコマンドのリストです。
終了ステータスは 0 です。

複合コマンドは、次の予約語を使用して作成されます。これらの語は単なる予約語です。
引用符で囲まれていない場合、およびコマンドの最初の単語として使用されている場合に認識されます (すなわち,
パラメータの割り当てやリダイレクトを前に置くことはできません)。

場合 ほかに
時間があればesacを実行します[[
{まで完了しました
select while の elif }

注意: 一部のシェル (ただし、このシェルではありません) は、次の場合にサブシェルで制御構造コマンドを実行します。
XNUMX つ以上のファイル記述子がリダイレクトされるため、内部の環境が変更されます。
彼らは失敗するかもしれない。 ポータブルにするために、 exec ファイルをリダイレクトするには代わりにステートメントを使用する必要があります
制御構造の前の記述子。

以下の複合コマンドの説明では、コマンド リスト ( リスト)それは
その後に続く予約語は、セミコロン、改行、または (構文的には) で終わる必要があります。
正)予約語。 例えば、

{ echo ふー; echo バー; }

{ echo ふー; echo バー}

{ { echo ふー; echo バー; } } どれも有効ですが、

{ echo ふー; echo バー } そうではありません。

( リスト )
実行する リスト サブシェル内。 環境の変更を渡す暗黙的な方法はありません。
サブシェルを親に戻します。

{ リスト }
複合構造。 リスト は実行されますが、サブシェル内では実行されません。 ご了承ください {   }  
メタ文字ではなく予約語です。

場合 単語 in [[(] パターン [| パターン]..。 ) リスト ;; ]..。 ESAC
当学校区の 場合 ステートメントは一致を試みます 単語 指定されたものに対して パターンs; の リスト
最初に一致したパターンに関連付けられたパターンが実行されます。 使用されているパターン
場合 ステートメントは、ファイル名パターンに使用されるステートメントと同じですが、
に関する制限 .   / 落とされます。 と の前に引用符で囲まれていないスペースがあることに注意してください。
パターンが剥がされた後。 パターンを含むスペースは引用符で囲む必要があります。 どちらの言葉も
そしてパターンはパラメータ、コマンド、算術置換の対象となります。
チルダ置換も同様です。 歴史的な理由から、左中括弧と右中括弧が使用される場合があります。
in   ESAC (例えば, 場合 $ foo { *) echo バー; })。 の終了ステータス 場合
ステートメントは実行されたステートメントです リスト; いいえの場合 リスト が実行されると、終了ステータスは
ゼロ。

[ in 単語 ... 期間 ] do リスト 行われ
コラボレー 期間 は改行または ;。 それぞれについて 単語 指定された単語リストでは、
パラメーター 単語に設定されており、 リスト が実行されます。 もしも in を指定するためには使用されません
単語リスト、位置パラメータ (「$ 1」, 「$ 2」, 等々) が代わりに使用されます。 ために
歴史的な理由により、代わりに左中括弧と右中括弧が使用される場合があります。 do   行われ (例えば,
i; { echo $ i; })。 の終了ステータス ステートメントは最後の終了ステータスです
リスト; もし リスト 実行されない場合、終了ステータスは XNUMX です。

if リスト その後 リスト [elif リスト その後 リスト] ... [ほかに リスト] fi
最初の終了ステータスが リスト ゼロ、XNUMX番目 リスト 実行される。 さもないと
  リスト 以下 elifがある場合は、同様の結果で実行されます。 すべての場合、
に続くリスト if   elif失敗します(すなわち、ゼロ以外のステータスで終了します)、 リスト
以下 ほかに が実行されます。 の終了ステータス if の声明です
無条件 リスト それは実行されます。 無条件でない場合 リスト 実行され、
終了ステータスはゼロです。

まで リスト do リスト 行われ
これは次のように機能します whileただし、本体は終了ステータスの間のみ実行されます。
最初の リスト ゼロ以外です。

while リスト do リスト 行われ
A while 事前チェックされたループです。 その本体は、その終了ステータスと同じ頻度で実行されます。
最初の リスト はゼロです。 の終了ステータス while ステートメントは最後の終了ステータスです
  リスト ループの本体内。 本体が実行されない場合、終了ステータスは次のようになります。
ゼロ。

() command
関数を定義します 。 以下の関数を参照してください。 後に指定されたリダイレクトに注意してください
関数定義は、関数が実行されるときではなく、関数が実行されるたびに実行されます。
関数定義が実行されます。

時間 [ -p ] [ パイプライン ]
当学校区の 時間 予約語については、「コマンド実行」セクションで説明します。

引用
引用符は、シェルが文字や単語を特別に扱うことを防ぐために使用されます。 そこには
引用には次の XNUMX つの方法があります。 \ 次の文字を引用符で囲みます。
行末。この場合、両方の \ そして改行は削除されます。 XNUMXつ目はシングル
引用 (') 次の一重引用符までのすべてを引用します (行にまたがる場合があります)。 第三に、
二重引用符 (") を除くすべての文字を引用符で囲みます。 $, `   \、次の引用符で囲まれていない二重値まで
見積もり。 $   ` 二重引用符内のは通常の意味を持ちます (すなわち、パラメータ、コマンド、または
算術置換)、の結果に対してフィールド分割が実行されないことを除きます。
二重引用符で囲まれた置換。 もし \ 二重引用符で囲まれた文字列の内側には次のものが続きます \, $, `
or "、XNUMX 番目の文字に置き換えられます。 後に改行が続く場合、両方の \
そして改行は削除されます。 それ以外の場合は、両方の \ そして次のキャラクターは
変更なし。

注: 次の形式のシーケンスに関する特別なルールについては、以下の POSIX モードを参照してください。
"...`...\"...`..".

置換
単純なコマンドを実行する際にシェルが行う最初のステップは、置換の実行です。
命令の言葉について。 置換にはパラメータ、コマンド、および
算術。 パラメータの置換については、次のセクションで詳しく説明します。
フォームを取る $ name or ${...}; コマンド置換は次の形式を取ります。 $( command) or
` command`; 算術置換は次の形式になります。 $((表現)).

置換が二重引用符の外側にある場合、置換の結果は次のようになります。
一般に、現在の値に応じて単語またはフィールドの分割の対象となります。 IFS
パラメータ。 ザ・ IFS パラメータは、改行に使用される文字のリストを指定します。
いくつかの単語につなげる。 設定されたスペース、タブ、改行の文字
IFS に登場する文字は次のように呼ばれます。 IFS スペース。 XNUMX つ以上の IFS のシーケンス
空白文字、XNUMX 個または XNUMX つの非 IFS 空白文字との組み合わせ
フィールドを区切ります。 特殊なケースとして、先頭と末尾の IFS 空白が削除されます。
(すなわち、それによって先頭または末尾の空のフィールドは作成されません)。 先頭または末尾の非 IFS
空白は空のフィールドを作成します。 例: もし IFS に設定されます:'、 シーケンス
文字の` あ: B::D' には XNUMX つのフィールドが含まれます: `A'、`B'、`'、
「D」。 注意してください。 IFS パラメータが NULL 文字列に設定されている場合、フィールド分割は行われません。
パラメータが設定されていない場合は、スペース、タブ、改行のデフォルト値が使用されます。

特に指定がない限り、置換の結果も中括弧の対象となります。
拡張とファイル名拡張 (以下の関連セクションを参照)。

コマンド置換は、指定されたコマンドによって生成された出力に置き換えられます。
サブシェルで実行されます。 ために $( command) 置換の場合、通常の引用符ルールが使用されます。
command ただし、解析されるのは、 ` command` フォーム、 \ 続いていずれか $, ` or \ is
剥がされた( \ その後に続く他の文字は変更されません)。 コマンドの特殊なケースとして
置換、次の形式のコマンド < file 内容を置き換えることを意味すると解釈されます
of file ($(< foo) は $(cat foo) と同じ効果がありますが、より多くの処理が実行されます。
プロセスが開始されないため効率的です)。

注: $( command) 現在、式は一致する括弧を見つけることによって解析されます。
引用の有無に関わらず。 これはすぐに修正されると思います。

算術置換は、指定された式の値に置き換えられます。 ために
たとえば、コマンド echo $((2+3*4)) 14. 演算式を参照してください。
の説明 表現.

技術パラメータ
パラメータはシェル変数です。 これらには値を割り当てることができ、その値は
パラメータ置換を使用してアクセスします。 パラメータ名は特殊な名前のいずれかです。
以下に説明する単一の句読点または数字のパラメータ、またはその後に続く文字
XNUMX 個以上の文字または数字 (「_」は文字としてカウントされます)。 後の形式は次のように扱うことができます
次の形式の配列インデックスを追加して配列を作成します。 [] コラボレー 算術です
表現。 現在、配列インデックスは 0 ~ 1023 の範囲に制限されています。
パラメータ置換は次の形式を取ります。 $, ${} or ${[]}ここで、  
パラメータ名。 パラメータ(または配列パラメータ)に対して置換が実行される場合
要素)が設定されていない場合は、 名詞セット オプション(セッションに -o
名詞セット or セッションに -u)が設定されている場合はエラーとなります。

パラメータにはさまざまな方法で値を割り当てることができます。 まず、シェルは暗黙的に設定します。
のようないくつかのパラメータ #, PWD、など。 これが特別な単一文字を使用する唯一の方法です
パラメータが設定されます。 次に、パラメータはシェルの環境からインポートされます。
起動。 XNUMX 番目に、コマンド ラインでパラメータに値を割り当てることができます。たとえば、
`FOO = bar' パラメータ FOO を bar に設定します。 複数のパラメータを割り当てることができます。
単一のコマンド ラインで、その後に単純なコマンドを続けることもできます。この場合、
割り当てはコマンドの実行中のみ有効です (そのような割り当ても有効です)
エクスポートされます。これによる影響については以下を参照してください)。 パラメータ名と =
シェルがパラメータの割り当てを認識するには、引用符で囲まれていない必要があります。 XNUMX番目の方法は、
パラメータの設定は export   読み取り専用 コマンド。 の説明を参照してください
コマンド実行セクション。 五番目、   select ループはパラメータを設定するだけでなく、
取得, read   セッションに -A コマンド。 最後に、次を使用してパラメータに値を割り当てることができます。
算術式内の代入演算子 (以下の「算術式」を参照)、または
${=} パラメータ置換の形式 (以下を参照)。

エクスポート属性を持つパラメータ ( export コマンド、またはパラメータによって
割り当てとそれに続く単純なコマンド)は、環境に置かれます(「 環境(5))の
シェルによって次のように実行されるコマンド = ペア。 パラメーターが
コマンドの環境は未指定です。 シェルが起動すると、パラメータが抽出されます。
とその値を環境から取得し、エクスポート属性を自動的に設定します。
それらのパラメータ。

修飾子を適用できるのは、 ${} パラメータ置換の形式:

${:-単語}
if 設定されており、null でない場合は置換されます。それ以外の場合は、 単語 代用されます。

${:+単語}
if 設定されており、null ではありません。 単語 が置換されるか、それ以外の場合は何も置換されません。

${:=単語}
if 設定されており、null でない場合は置換され、それ以外の場合は割り当てられます 単語
結果の値 代用されます。

${:?単語}
if 設定されており、null でない場合は置換されます。それ以外の場合は、 単語 標準で印刷されています
エラー (前に :) エラーが発生します (通常はシェルが終了します)
スクリプト、関数、または .-script)。 word が省略された場合、文字列 `parameter null かどうか
代わりに「set」が使用されます。

上記の修飾子では、 : は省略できます。その場合、条件は次の条件のみに依存します。
設定されている (設定されていて null ではないのとは対照的)。 もしも 単語 必要なパラメータ、コマンド、
算術演算とチルダ置換が実行されます。 もしも 単語 必要ありません、必要ありません
評価されました。

次の形式のパラメータ置換も使用できます。

$ {#}
位置パラメータの数。 is *, @ または指定されていない、または長さ
パラメータの文字列値 .

$ {#[*]}, $ {#[@]}
配列内の要素の数 .

${#パターン}, ${##パターン}
If パターン パラメータの値の先頭と一致します 、一致したテキストは
置換結果から削除されます。 独身者 # 結果は最短一致、XNUMX
#の結果は最長一致になります。

${%パターン}, ${%%パターン}
いいね ${..#..} 置換ですが、値の末尾から削除されます。

次の特殊パラメータはシェルによって暗黙的に設定されるため、設定することはできません。
代入を直接使用して:

!
最後に開始されたバックグラウンド プロセスのプロセス ID。 バックグラウンドプロセスがない場合は、
開始された場合、パラメータは設定されていません。

#
位置パラメータの数 (すなわち, $1, $2, 等々).

$
シェルのプロセス ID、または元のシェル (サブシェルの場合) の PID。

-
現在の XNUMX 文字のオプションの連結 (「 セッションに リストについては以下のコマンド
オプションの)。

?
最後に実行された非同期コマンドの終了ステータス。 最後のコマンドが
信号によって殺され、 $? は 128 に信号番号を加えたものに設定されます。

0
シェルが呼び出された名前 (つまり、 argv [0])、 または コマンド名 だったら
で呼び出されます -c オプションと コマンド名 供給された、または file 引数、場合
供給されました。 もし POSIX オプションが設定されていない場合、 $0 現在の名前です
関数またはスクリプト。

1 ... 9
シェル、関数、またはに指定された最初の XNUMX つの位置パラメータ
.-脚本。 さらに位置パラメータには次を使用してアクセスできます。 ${数値}.

*
すべての位置パラメータ (パラメータ 0 を除く)、 すなわち, $1 $2 $3.... 以外で使用した場合
二重引用符、パラメータは別の単語です (単語分割の対象となります)。
二重引用符内で使用した場合、パラメータは最初の文字で区切られます。
IFS パラメータ (または空の文字列の場合) IFS 無効です)。

@
と同じ $*ただし、二重引用符で囲んで使用しない限り、二重引用符で囲んだ場合は別の単語になります。
位置パラメータごとに生成 - 位置パラメータがない場合は、
word が生成されます (「$@」を使用すると、引数を失うことなくそのままアクセスできます)
null 引数、またはスペースで引数を分割します)。

次のパラメータはシェルによって設定および/または使用されます。

"CDPATH"
の検索パス cd 組み込みコマンド。 と同じように動作します パス それらのための
で始まらないディレクトリ / in cd コマンド。 CDPATH が設定されている場合は、
含まれていません。 空のパスがない場合、現在のディレクトリは検索されません。

COLUMNS
端末またはウィンドウの列数に設定します。 現在設定されているのは、 コルズ
によって報告された値 スティ(1) その値がゼロ以外の場合。 このパラメータは、
インタラクティブなライン編集モード、および select, セッションに -o   kill -l フォーマットするコマンド
コラムの情報。

エラー番号
シェルの errno 変数の整数値 — 最後のシステムが失敗した理由を示します。
呼び出しに失敗しました。

まだ実装されていません。

エグゼクシェル
設定されている場合、このパラメータには、実行に使用されるシェルが含まれているとみなされます。
そのコマンド 実行する(2) 実行に失敗し、` で始まらないもの#! shell'
シーケンス。

FC編集
が使用するエディタ fc コマンド(以下を参照)。

FPATH
いいね パスただし、定義されているファイルを見つけるために未定義の関数が実行されるときに使用されます。
関数。 コマンドが見つからない場合にも検索されます。 パス。 見る
詳細については、以下の関数を参照してください。

ホーム
のデフォルトのディレクトリ cd コマンドと、修飾されていないコマンドに代入される値
~ (下記のチルダ展開を参照)。

IFS
内部フィールド区切り文字。置換中および read コマンド、分割する
値を個別の引数に変換します。 通常はスペース、タブ、改行に設定されます。 見る
詳細については上記を置き換えてください。

注意: このパラメータは、シェルの起動時に環境からインポートされません。

POSH_VERSION
posh のバージョン (読み取り専用)。

リネノ
現在実行されている関数またはシェル スクリプトの行番号。

LINES
ターミナルまたはウィンドウの行数に設定します。

まだ実装されていません。

OLDPWD
以前の作業ディレクトリ。 次の場合は設定を解除します cd ディレクトリが正常に変更されていません
シェルが開始されてから、またはシェルがシェルの場所を認識していない場合。

オプターグ
使用時 取得、必要な場合は、解析されたオプションの引数が含まれます。

最適化
使用時に処理される最後の引数のインデックス 取得。 これに 1 を代入すると
パラメータの原因 取得 次回実行時に引数を最初から処理する
呼び出されます。

パス
コマンドを検索するときに検索されるディレクトリのコロンで区切られたリスト。
.'d ファイル。 先頭または末尾のコロン、または隣接する XNUMX つのコロンから生じる空の文字列
コロンは「.」、つまり現在のディレクトリとして扱われます。

PPID
シェルの親のプロセス ID (読み取り専用)。

PS1
対話型シェルの主なプロンプト。 プロンプトはそのまま出力されます (すなわち
置換が行われます)。 デフォルトは、非 root ユーザーの場合は '$ '、`# ' ルート用..

PS2
二次プロンプト文字列、デフォルトでは `> '、完了するためにさらに入力が必要な場合に使用されます。


PS4
実行トレース中に出力されるコマンドにプレフィックスを付けるために使用されます (「 セッションに -x command
下)。 プロンプトはそのまま出力されます (すなわち、置換は行われません)。 デフォルトは
`+ '.

PWD
現在の作業ディレクトリ。 シェルがそれがどこにあるかわからない場合は、設定解除または null になる可能性があります。

応答
のデフォルトパラメータ read 名前が指定されていない場合は、コマンドを実行します。 にも使用されます select
ループして、標準入力から読み取られた値を格納します。

TMPDIR
シェル一時ファイルが作成されるディレクトリ。このパラメータが設定されていない場合、または
書き込み可能なディレクトリの絶対パスは含まれていません。一時ファイルは
/tmp に作成されます。

チルダ 拡張
パラメータ置換と並行して行われるチルダ展開は単語に対して行われます。
引用符なしで始まる ~。 チルダに続く最初の文字までの文字 /、もし
any はログイン名とみなされます。 ログイン名が空の場合、 + or -、の値
ホーム, PWDまたは OLDPWD パラメータがそれぞれ代入されます。 それ以外の場合は、パスワード ファイル
ログイン名が検索され、チルダ式がユーザーの名前に置き換えられます。
ホームディレクトリ。 ログイン名がパスワード ファイルに見つからない場合、または引用符または
パラメータの置換がログイン名で発生する場合、置換は実行されません。

パラメータの割り当て (単純なコマンドの前にあるもの、またはコマンドの途中で発生するもの)
の引数 alias, export, 読み取り専用、チルダ展開は引用符で囲まれていないコロンの後に行われます。
(:)、ログイン名もコロンで区切られます。

以前に展開されたログイン名のホーム ディレクトリはキャッシュされ、再利用されます。 の alias -d
コマンドを使用して、このキャッシュを一覧表示、変更、および追加できます (例えば, `エイリアス -d
fac=/usr/local/facilities; cd ~fac/bin')。

File お名前 パターン
ファイル名パターンは、引用符で囲まれていない単語を XNUMX つ以上含む単語です。 ? or * キャラクターや [..]
シーケンス。 中括弧の展開が実行されると、シェルはファイル名パターンを置き換えます。
パターンに一致するすべてのファイルのソートされた名前を使用します (一致するファイルがない場合は、単語
変更されないままになります)。 パターン要素には次の意味があります。

"?"
任意のXNUMX文字に一致します。

*
任意の文字シーケンスと一致します。

[..]
括弧内の文字のいずれかと一致します。 文字の範囲は次のとおりです。
XNUMX つの文字を a で区切って指定します。 -, 例えば, [a0-9] 文字と一致します a or
任意の数字。 それ自体を表現するために、 - 引用符で囲むか、最初の、または
文字リストの最後の文字。 同様に、 ] 引用符で囲むか、最初に引用する必要があります
リストの末尾ではなくそれ自体を表す場合、リスト内の文字。 また、
a ! リストの先頭にある には特別な意味があります (下記を参照)。
それ自体を表すには、引用符で囲むか、リストの後半に表示する必要があります。

[!..]
ような [..]ただし、括弧内にない文字と一致する場合を除きます。

現在、 posh は決して一致しないことに注意してください。 そして .. ただし、オリジナルの ksh、Bourne sh、および bash
したがって、これは変更する必要があるかもしれません(残念です)。

上記のパターン要素はいずれも、パターンの先頭のピリオド (.) に一致しないことに注意してください。
ファイル名またはスラッシュ (/)、それらが明示的に使用されている場合でも、 [..] 順序; また、
名前 。 と .. はパターンによっても一致しません .*.

POSIX 文字クラス (すなわち, [:クラス名:] 内部 [..] 式)はまだです
実装されました。

入力/出力 リダイレクション
コマンドを実行すると、標準入力、標準出力、標準エラー(ファイル
記述子 (それぞれ 0、1、2) は通常、シェルから継承されます。 三つ
例外はパイプライン内のコマンドで、標準入力や標準
出力はパイプラインによって設定されたもので、ジョブ制御時に作成された非同期コマンドです。
無効。標準入力は最初は /dev/null からのものに設定されており、コマンドは
次のいずれかのリダイレクトが指定されています。

"> file"
標準出力はにリダイレクトされます file。 場合 file 存在するのではなく、作成されます。 それであれば
存在し、通常のファイルであり、 ノークロバー オプションが設定されている場合、エラーが発生します。
それ以外の場合、ファイルは切り詰められます。 これはコマンドを意味することに注意してください CMD < foo > foo 意志
開いた foo 読み取り用に開き、書き込み用に開くときに切り詰めます。 CMD
実際に読む機会が得られる foo.

">| file"
と同じ >ただし、ファイルが切り詰められている場合を除きます。 ノークロバー オプションが設定されています。

">> file"
と同じ >ただし、既存のファイルが切り詰められるのではなく追加されるファイルを除きます。
また、ファイルは追加モードで開かれるため、書き込みは常にファイルの末尾に行われます。
(参照してください 開いた(2))。

"< file"
標準入力はからリダイレクトされます file、閲覧のために開かれています。

"<> file"
と同じ <ただし、ファイルが読み取りと書き込みのために開かれている場合を除きます。

"<< マーカー"
この種のリダイレクト (here と呼ばれる) を含むコマンド ラインを読み取った後、
document)、シェルはコマンド ソースから一時ファイルに行をコピーします。
一致するライン マーカー 読まれます。 コマンド実行時の標準入力は
一時ファイルからリダイレクトされます。 もしも マーカー 引用符で囲まれた文字が含まれていない場合、
一時ファイルの内容は毎回二重引用符で囲まれたかのように処理されます
コマンドが実行されるため、パラメータ、コマンド、および算術置換が行われます。
バックスラッシュ (\) のために逃げる $, `, \   \改行。 複数の場合はこちら
ドキュメントは同じコマンド ラインで使用され、順番に保存されます。

"<<- マーカー"
と同じ <<ただし、ヒアドキュメント内の行から先頭のタブが削除されます。

"<& fd"
標準入力はファイル記述子から複製されます fd. fd XNUMX 桁にすることもできますが、
既存のファイル記述子の番号を示す文字 p
現在のコプロセスの出力に関連付けられたファイル記述子、または文字
-、標準入力が閉じられることを示します。

">& fd"
と同じ <&ただし、操作は標準出力で行われます。

上記のリダイレクトのいずれかで、リダイレクトされるファイル記述子 (すなわち、標準
入力または標準出力) をリダイレクトの前に付けることで明示的に指定できます。
一桁。 パラメータ、コマンド、算術置換、チルダ置換、および (if
シェルは対話型です) ファイル名の生成はすべて file, マーカー  
fd リダイレクトの引数。 ただし、ファイル名生成の結果は
単一のファイルが一致する場合にのみ使用されます。 複数のファイルが一致する場合、
展開されていないファイル名生成文字が使用されます。

単純なコマンドの場合、リダイレクトはコマンド内のどこにでも使用できます。
複合コマンド (if ステートメント 等々)、リダイレクトは最後に表示する必要があります。
リダイレクトはパイプラインの作成後、指定された順序で処理されるため、

cat / foo / bar 2>&1 > / dev / null | cat -n 行番号を先頭に付けてエラーを出力します
ボーマンは

算術
整数の算術式は内部で使用できます $((..)) 配列内の式
参考文献(例えば, [])、への数値引数として test コマンド、および値として
整数パラメータへの割り当ての。

式には、英数字のパラメータ識別子、配列参照、および整数が含まれる場合があります。
定数であり、次の C 演算子と組み合わせることができます (以下にリストおよびグループ化されています)。
優先順位が高くなります)。

単項演算子:
+ - ! ~ ++ --

二項演算子:
,

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

||

&&

|

^

&

== !=

< <= >= >

<< >>

+ -

* / %

三項演算子:
?: (優先順位は代入よりもすぐに高くなります)

グループ化演算子:
( )

整数定数は、次の表記を使用して任意の基数で指定できます。 ベース#,
コラボレー ベース 基数を指定する XNUMX 進整数であり、 内の数字です
指定されたベース。

演算子は次のように評価されます。

"単項 +"
result は引数です (完全を期すために含まれています)。

"単項 -"
否定。

"!"
論理的ではありません。 結果は、引数がゼロの場合は 1、そうでない場合は 0 になります。

"~"
算術 (ビット単位) ではありません。

"++"
インクリメント; (リテラルや他の式ではなく) パラメーターに適用する必要があります。
パラメータは 1 ずつ増加します。接頭辞演算子として使用すると、結果は次のようになります。
パラメータの増分値を後置演算子として使用した場合、結果は次のようになります。
パラメータの元の値。

"++"
に似て ++ただし、パラメータが 1 減分されます。

","
XNUMX つの算術式を区切ります。 左側が最初に評価され、次に
右。 結果は右辺の式の値になります。

"="
割り当て; 左側の変数は右側の値に設定されます。

"*= /= %= += -= << = >> = &= ^= |="
代入演算子。 = と同じです。 = ( ).

"||"
論理和; いずれかの引数がゼロ以外の場合、結果は 1 になり、そうでない場合は 0 になります。 権利
引数は、左引数が XNUMX の場合にのみ評価されます。

"&&"
論理積; 両方の引数がゼロ以外の場合、結果は 1 になり、そうでない場合は 0 になります。 権利
引数は、左引数がゼロ以外の場合にのみ評価されます。

"|"
算術 (ビット単位) または。

"^"
算術 (ビット単位) 排他的論理和。

"&"
算術 (ビット単位) および。

"=="
同等; 両方の引数が等しい場合、結果は 1 になり、そうでない場合は 0 になります。

"!="
等しくありません。 両方の引数が等しい場合は結果は 0、そうでない場合は 1 になります。

"<"
未満; 左の引数が右の引数より小さい場合、結果は 1 になり、そうでない場合は 0 になります。

"<= >= >"
以下、以上、以上。 <を参照してください。

"<< >>"
左 (右) にシフトします。 結果は、ビットが左 (右) にシフトされた左の引数です。
右の引数で指定された量によって計算されます。

"+ - * /"
加算、減算、乗算、除算。

"%"
残り。 結果は、左の引数を次の値で除算した余りになります。
右。 いずれかの引数が負の場合、結果の符号は指定されません。

" ? : "
if がゼロ以外の場合、結果は次のようになります 、そうでなければ .

機能
関数は Bourne/POSIX シェルを使用して定義されます () 構文。 機能は次のようなものです
.-scripts は現在の環境で実行されるという点で異なりますが、.-scripts とは異なります。
シェル引数 (すなわち、位置パラメータ、 $1, 等々) 内部には決して表示されません。
シェルがコマンドの場所を決定するとき、関数はその後に検索されます。
特別な組み込みコマンド、通常および非通常の組み込みコマンドの前、および
パス 検索されます。

既存の関数は次の方法で削除できます。 unset -f 関数名.

関数は現在のシェル環境で実行されるため、パラメータの割り当てが行われます。
内部関数は、関数が完了した後に表示されます。

関数の終了ステータスは、関数内で実行された最後のコマンドの終了ステータスです。 あ
を使用して関数をすぐに終了させることができます return 指図; これも使えるかもしれません
終了ステータスを明示的に指定します。

Command 実行
コマンドライン引数、リダイレクト、パラメータ割り当ての評価後、
コマンドのタイプが決定されます: 特別な組み込み、関数、通常の組み込み、または
を使用して見つかった、実行するファイルの名前 パス パラメータ。 チェックは上記で行われます
注文。 特別な組み込みコマンドが他のコマンドと異なるのは、 パス パラメータは
それらを検索するために使用されない場合、実行中のエラーにより非対話型シェルが発生する可能性があります。
コマンドの前に指定されたパラメータの割り当ては、コマンドの後も保持されます。
コマンドが完了します。 混乱を招くため、posix オプションがオフになっている場合 (「 セッションに
以下のコマンド)一部の特別なコマンドは、フィールド分割がないという点で非常に特殊です。
グロビング、中括弧展開、チルダ展開は、次のような引数に対して実行されます。
課題。 通常の組み込みコマンドとは、次の点のみが異なります。 パス パラメータは
それらを見つけることに慣れていません。

Job 管理
ジョブ制御とは、シェルの監視および制御機能を指します。 jobs、プロセスです
コマンドまたはパイプライン用に作成されたプロセスのグループ。 少なくとも、シェルは次のことを維持します。
バックグラウンドのステータスの追跡 (すなわち、非同期)現在存在するジョブ。 これ
情報は、 jobs 指図。 ジョブ制御が完全に有効になっている場合
(使用 セッションに -m or セッションに -o モニター)、対話型シェルの場合と同様、ジョブのプロセス
独自のプロセス グループに配置されている場合、フォアグラウンド ジョブは次のように入力して停止できます。
端末からサスペンド文字 (通常は ^Z) を使用すると、ジョブは次のいずれかの方法で再開できます。
前景または背景、 fg   bg それぞれのコマンドとその状態
ターミナルは、フォアグラウンド ジョブが停止または再開されると、それぞれ保存または復元されます。

プロセスを作成するコマンドのみであることに注意してください (例えば、非同期コマンド、サブシェル
コマンド、および非組み込み、非機能コマンド)を停止できます。 のようなコマンド read
あり得ません。

ジョブが作成されると、ジョブ番号が割り当てられます。 対話型シェルの場合、この数値は次のとおりです。
内側に印刷されています [..]、その後にジョブ内のプロセスのプロセス ID が続きます。
非同期コマンドが実行されます。 ジョブは次の場所で参照できます。 bg, fg, jobs, kill   wait
コマンドは、コマンド パイプライン内の最後のプロセスのプロセス ID (保存されているとおり) によって指定されます。
会場は $! パラメータ)を使用するか、ジョブ番号の前にパーセント記号(%)。 その他の
パーセント シーケンスは、ジョブを参照するためにも使用できます。

%+ %+ 当学校区の 最も 最近 停止 仕事、 または、 if
そこ   いいえ 停止 仕事、   最も古い投稿
ランニング 仕事。
%%、 % %%、 % と同じ %+.
%- %- となるジョブ
ある %+ 仕事、もし
後者はそうではなかった
存在する。
%n %n との仕事
ジョブ番号 n.
%?string %?string を含むジョブ
文字列 string
(次の場合はエラーが発生します)
複数の仕事
 
一致しました)。
%string %string から始まる仕事
string string (エラー
複数のジョブの場合に発生します
 
一致しました)。

ジョブの状態が変化するとき (例えば、バックグラウンド ジョブが終了するか、フォアグラウンド ジョブが停止します)、
シェルは次のステータス情報を出力します。 [] フラグ status command コラボレー

" "
ジョブのジョブ番号です。

" フラグ"
is + or - その仕事が %+ or %- それぞれジョブ、またはどちらでもない場合はスペース。

" status"
ジョブの現在の状態を示します。

"Running:"
ジョブは停止も終了もしていません (実行中であることが必ずしも意味するわけではないことに注意してください)
CPU 時間を消費します - プロセスは何らかのイベントを待ってブロックされる可能性があります)。

"クリックします [()]"
ジョブは終了しました。 ジョブの終了ステータスです。ステータスが次の場合は省略されます。
ゼロです。

"停止 [(信号)]"
ジョブは示された方法で停止されました 信号 (信号が与えられなかった場合、ジョブは完了しました。
SIGTSTP によって停止されました)。

"信号の説明 [(芯 捨てられた)]"
ジョブはシグナルによって強制終了されました (例えば、メモリ障害、ハングアップ、 等々 - 使用 kill -l のために
信号の説明のリスト)。 の (芯 捨てられた) メッセージはプロセスが作成されたことを示します
コアファイル。

" command"
プロセスを作成したコマンドです。 ジョブ内に複数のプロセスがある場合、
各プロセスにはそのプロセスを示す行が表示されます。 command そしておそらくその status、 それであれば
前工程の状態と異なります。

停止状態のジョブがあるときにシェルを終了しようとすると、
シェルは停止したジョブがあることをユーザーに警告し、終了しません。 別の試みがあった場合
すぐにシェルを終了すると、停止したジョブが送信されます。 HUP シグナルとシェル
出る。 同様に、 nohup オプションが設定されておらず、実行中のジョブが存在する場合、
ログイン シェルを終了しようとすると、シェルはユーザーに警告を出し、終了しません。 もしも
すぐにシェルを終了しようとする別の試行が行われると、実行中のジョブが送信されます。 HUP
信号が送られ、シェルが終了します。

ビルティン UTILITIES


posh は次の組み込みユーティリティを実装します。

・。

・:

・[

・ 壊す

· 内蔵

・ 続く

· 評価

· 幹部

・ 出口

・ 間違い

・ 戻る

・ 設定

・ シフト

· 回

・トラップ

・ 待って

・ 読む

・ テスト

・ 真実

· umask

· 設定を解除する

・ CD

・ 指図

・ エコー

・ 輸出

· ゲオプツ

・ 殺す

・ 地元

· パスワード

· 読み取り専用

onworks.net サービスを使用してオンラインで Posh を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。