byobu-tmuxステータスバーにnVidia GPU使用率を追加しようとしています。私はインストールしましたグラフィックプロセッサ統計返品
~$ gpustat
myhost Mon Aug 19 17:26:51 2019 410.48
[0] GeForce GTX 1080 Ti | 22'C, 0 % | 0 / 11178 MB |
[1] GeForce GTX 1080 Ti | 41'C, 0 % | 0 / 11175 MB |
その後、テキストプロセッサを作成して〜/.byobu/bin/2_gpuに保存し、byobu Webページで提案されているようにステータスをカスタマイズしました。
~$ cat .byobu/bin/2_gpu
#!/bin/sh
echo "$(gpustat | tail -n+1 | sed -nr "s/\[[0-9]\].+([0-9]+)\s\%.*$/\1%/p" | tr [:space:] ',' | head -c-1)"
動作しているように見えるbashシェルでは、shebangがshかbashであるかは重要ではないようです。
~$ .byobu/bin/2_gpu
0%,0%
しかし、そのテキストをbyobu-tmuxステータス行にインポートすることはできません。より単純なカスタム状態はうまく機能しますが、sedコマンドの正規表現引数の引用符および/または「$」をエスケープする際にいくつかの問題があります。なぜechoが必要なのかはわかりませんが、echoを削除してもecho "$(...)"
役に立ちません。内部二重引用符と「$」文字にバックスラッシュを追加しても役に立ちません。
答え1
さて、多くの調整の終わりに素晴らしいカラーコーディングの利点を使用して、私が望むように動作するようです。
#!/bin/sh
SED_PATTERN='s/^.*([0-9]+)\s%.*$/\1%%,/p'
GPUSTAT="$(gpustat | tail -n+2 | sed -nr $SED_PATTERN | head -c-2)"
echo "#[bg=blue]GPU:$GPUSTAT#[bg=black]"