PROMPT_COMMAND
が1つだけあり、プロンプトを表示する直前に実行されます。典型的な方法を実行するためにコマンドを追加するには、次のとおりです。PROMPT_COMMANDでユニークなエントリを維持する
PROMPT_COMMAND="my_command; $PROMPT_COMMAND"
問題は、この行でそのが既に追加されている場合でも、my_command
を追加します。私はそれを更新した後に私の~/.bashrc
をソースしたいと思っています。
PROMPT_COMMAND=$(echo "$PROMPT_COMMAND" | sed 's/^ *\(.*[^ ]\) *$/\1/' | sed 's/ *; */\n/g' | sed '/^$/d' | sort -u | tr '\n' ';')
しかし、いくつかのコマンドは;
内部の文字列とサブシェルのコマンドが含まれ、上記を破るなど:.bashrc
上記では、PROMPT_COMMAND
はmycommand; mycommand; mycommand; mycommand; ...
私は;
に基づいて分割し、再結合することでしたひとつのアイデアに展開します引用符、大括弧、エスケープ文字は無視されます。どうすればきれいに複数のPROMPT_COMMAND
を維持できますか?