私は拡張子「.P」を持つ5つのファイルを生成し、その中に「something」行を書くbashスクリプトを書いています。 「P」は、ファイルを生成したプロセスのPIDである数値を表します。どうすればこれを行うことができますか?私はファイルを作成し、次のように書いています。echo "something" > file_name
ベストアンサー1
現在実行中のbashセッションのPIDを知りたい場合(シェルスクリプトを実行するスクリプトである可能性が高い)または$$
を使用できます${BASHPID}
。 GNU bash 4.2のマニュアルページの「シェル変数」セクションを引用することは似ていますが、少し異なります。
バッシュPID
現在のbashプロセスのプロセスIDに展開されます。これは
$$
、bashを再初期化する必要がないサブシェルと同じ場合とは異なります。
${PPID}
現在のbashセッションの親プロセスのプロセスIDを保存すると便利です。さらに進むには、プロセスツリーを見ているコードを書く必要があります。これはOSに依存します。
echo "something" > file_name.$$
シェルで例を試してみてください。重大な作業を行う場合は、既知の安全な値に設定されていない環境変数に関連するすべての内容を引用する必要があります。
必要なものが元のファイルを作成したプロセスのPIDである場合、タイトルからわかるように、これは可能だと思います(実行中のOSによって異なりますが)。通常、PIDは再利用され、通常はややランダムであるため、保存するのに有用な情報ではありません。多忙なマルチユーザーシステムでは、あらゆる意図と目的のために機能します。〜する特定のユーザーに対してランダムです。