最後に実行されたPIDをデフォルトのプロンプト文字列に追加するには?

最後に実行されたPIDをデフォルトのプロンプト文字列に追加するには?

私はこの質問に対する答えを見つけるために数時間を費やしました。 (デフォルト)名前を(PS1?)変数に追加し、現在実行中のプロセスIDを.bashrcの(PS2?)変数に追加したいと思います。私の表現は正確ではないかもしれませんが、これはプロンプト文字列に追加したい画像です。ここに画像の説明を入力してください。

上記の例で使用されているCコードは次のとおりです。 ここに画像の説明を入力してください。

Ubuntu 18.04.1 LTSを使用しています。私が使用した画像は、プロンプト文字列から(デフォルト)とPIDを省略しました。

変数に$$と$PPIDを追加してみました。

答え1

これは、PS1、PS2、またはプロンプトやシェルに関連する他のものとは何の関係もありません。 Cプログラムを実行しており、プログラムがPIDを印刷しています。コードを見てください:

printf("(%d) addr pointed to by p: %p\n", (int) getpid(), p);

したがって、括弧内の数字は、呼び出しによって返されたプロセスのPIDですgetpid()。そのため、印刷されたものを見ることができます。上記の行を次のように変更すると、

printf("(foo:%d) addr pointed to by p: %p\n", (int) getpid(), p);

foo:PIDの前に印刷されたものが表示されます。

関連情報