web-dev-qa-db-ja.com

busyboxのshサポートのための特別なプロンプトシンボルは何ですか?

PS1でタイムプロンプトを設定したい。しかし、busyboxがサポートするシンボルとは何かについてのドキュメントはありません。

誰か知っていますか?これが私が知っていたすべてです。

PS1='\u@\h: \w \$'
5
Daniel YC Lin

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_:ホスト名
  • _\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_で発生します。)