busybox ash PS1を拡張できません。

busybox ash PS1を拡張できません。

ash拡張プロンプトステートメントをサポートするために、組み込みシステムにbusyboxを設定しようとしていますPS1。現在は以下に設定されています。

PS1='\u@\h:\w\$ '

ただし、表示される内容はすべて文字通りです\u@\h:\w\$。私の環境変数は

  • HOSTNAME=linux
  • USER=root
  • 私のパスワードは/

これで表示されるべき内容はですroot@linux:/$。正しくサイズを変更するには特別な作業が必要ですかPS1


私が気づいたことの1つは、私のSHELL変数/bin/shにも/etc/inittab次の行があるということです。

ttyO0::respawn:-/bin/bash

sh私はこれがビジボックス構成で、とがすべて別名で指定されているので、そのような場合だと思いますbashashただし、次のオプションが有効になっています。

  • bash-compatible extensions
  • Expand prompt string

答え1

コンパイルされた場合、Busyboxのashまたはhushのプロンプト拡張は常に有効になり、それをオフにするランタイム方法はありません。実際にコンパイルされていることを確認してください。特にAshでは、このFEATURE_EDITING機能も有効にする必要があります(「コマンドラインの編集」)。

関連情報