PS1で時間通知を設定したいです。しかし、busyboxがどのシンボルをサポートしているかについてのドキュメントはありません。
知っている人はいますか?それは私が知っているすべてです。
PS1='\u@\h: \w \$'
答え1
BusyBoxには、ashとhushという2つのシェルがあります。何かを確認するには、次の手順を実行しますtype chdir
。 ashには組み込み関数(同義語を含むcd
)がありますが、hushにはありません。どちらにもオプションのプロンプト拡張機能があります。 AshはASH_EXPAND_PRMT
コンパイル時に機能を有効にすることで有効になりますが、HushではFEATURE_EDITING_FANCY_PROMPT
。
この機能があると、ashは値が二重引用符PS1
で囲まれた文字列のように展開され、構造も拡張されます。$foo
$(command)
`command`
一部のバックスラッシュエスケープが処理されます(置換後の灰)。彼らはbashのサブセットです。
\!
: 行履歴の数\a
: ベル\b
:バックスペースキー\e
、\E
:脱出する\f
: ページ変更\h
: CPU名\n
: 新しいチーム\r
:入力する\t
: ラベル\u
:ユーザー名(のみ含むFEATURE_GETUSERNAME_AND_HOMEDIR
)\v
:縦タブ文字\w
:現在のディレクトリ、ホームディレクトリを表すバンド付き~
(バンドのみ含むFEATURE_GETUSERNAME_AND_HOMEDIR
)\W
:現在のディレクトリ(省略されていません)\xHH
または、\XHH
HHが2つの16進数の場合:16進コードで指定された文字\[…\]
:含まれているテキストは、幅を計算する目的で計算されません。
(ソースコードを見ると、このようなことが起こりますparse_and_put_prompt
。libbb/lineedit.c
)