「kill%1」の%1はどういう意味ですか?


12

$!最後の(バックグラウンド)プロセスのpidが格納されていることは知ってい%1ますが、どういう意味ですか?と一緒によく見ますkillが、と同じ効果がありkill $!ます。誰かが私にヒントを与えることはできますか?(そのような小さな用語はグーグルするのがとても難しい:-/)


そうでもない... google.com/search?q=percent+1+bash(3番目の結果を参照)
Hello71 '28

回答:


10

%指定子は、現在のシェルのジョブリスト内のジョブを参照し、PIDを返します。お試しくださいhelp jobs


1
私を混乱させたのは、man kill何も言わない外部のkill実行可能ファイルのmanページを与えることでした%。しかし、bashには組み込みもあり、組み込みkillは外部killよりも優先され、組み込みでhelp killjobspecsを使用できることkill、およびjobspecsを使用できることは、ビルトイン。
Ciro Santilli冠状病毒审查六四事件法轮功

8

あなたがグーグルにしたいのは man bash

シェルでジョブを参照するには、いくつかの方法があります。文字%はジョブ名を示します。ジョブ番号nは%nと呼ばれることがあります。ジョブは、ジョブの開始に使用された名前のプレフィックスを使用して、またはコマンドラインに表示される部分文字列を使用して参照される場合もあります。たとえば、%ceは停止したceジョブを指します。プレフィックスが複数のジョブに一致する場合、bashはエラーを報告します。一方、%?ceの使用は、コマンドラインに文字列ceを含むジョブを指します。サブストリングが複数のジョブに一致する場合、bashはエラーを報告します。記号%%と%+は、現在のジョブのシェルの概念を示します。これは、フォアグラウンドにあるか、バックグラウンドで開始されたときに停止した最後のジョブです。以前のジョブは%-を使用して参照できます。現在のジョブのみがある場合、%-はシェルの現在のジョブの概念を示します。ジョブに関連する出力(たとえば、jobsコマンドの出力)では、現在のジョブには常に+のフラグが付けられ、前のジョブには-のフラグが付けられます。1つの%(付随するジョブ指定なし)も現在のジョブを参照します。

ジョブに名前を付けるだけで、フォアグラウンドに移動できます。%1は '' fg%1 ''の同義語であり、ジョブ1をバックグラウンドからフォアグラウンドに移動します。同様に、 ''%1& ''はバックグラウンドでジョブ1を再開します。これは '' bg%1 ''と同等です。

TL; DR: %1ジョブ番号1です。


5
品質は仕事番号1だと思いました...
Ignacio Vazquez-Abrams

1
@Ignacio Vazquez-Abrams:ああ、それと自然の要求。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.