0

ユーザーchepnerが彼の回答で( bash マニュアルに記載されているように) を使用して現在実行中のバックグラウンド ジョブの数を取得することを提案したこの投稿に出くわしました。基本的には、\j

num_jobs="\j"
echo ${num_jobs@P}

ここで何が起こっているのかを正確に教えてくれる人はいますか? 例えば

  • が機能しない理由${\j@P}
  • 正確には何@Pをしているのですか?
4

2 に答える 2

0

の前の部分@は、展開しようとしているパラメーターの名前です。何らかの方法で変更したい文字列にすることはできません。And@Pは Bash 4.4 で導入されたパラメーター拡張です (マニュアルを参照):

${parameter@operator}

拡張は、 の値に応じて、 の値の変換parameter またはパラメータ自体に関する情報 のいずれかですoperator。各演算子は 1 文字です。

P

展開は、プロンプト文字列であるかのように の値を展開した結果の 文字列です (「プロンプトの制御parameter」 を参照)。

于 2018-12-20T14:52:39.673 に答える