vimステータスバーにバッテリー機能を追加しました。これはリンクです。 vimで私のバッテリーを正しく表示して実行すると、期待どおりに$ acpi | grep -oP "(\d+)%"
数字とパーセント記号が返されます。私は私が使用しているものよりもzshrc
印刷するので、私を更新することにしました。cut
bat () { acpi | grep -oP "(\d+)%" }
PROMPT="%t | $(bat) | %d
$ "
しかし、私が終わるのは次のとおりです。
7:22PM | 89[m | /home/rain
$
[m
で印刷する方法は%
?それとも完全に捨てて数字だけを印刷できますか?
答え1
これはおそらくANSIエスケープコード(=通常の色と属性にリセット、省略)[m
の終わりであり、最初のESC文字()は削除されます。\e[m
\e
私の考えでは、grep
対話型で実行するときに一致する文字列に色を付け、出力がプロンプトの一部となるシェル関数の一部として実行すると、対話型検出が失敗するようです。
出力のパーセント記号は、プロンプトで特別な処理をトリガーするか、%\e
意味がない場合は削除されます。
bat
次のように関数を定義してみてください。
bat () { acpi | grep --color=never -oP "(\d+)%" }