只有一個PROMPT_COMMAND
,它在顯示提示之前運行。要添加命令來運行的典型方法是:在PROMPT_COMMAND中維護唯一條目
PROMPT_COMMAND="my_command; $PROMPT_COMMAND"
的問題是該行補充說,即使它已經被添加my_command
。我很喜歡在更新它之後獲取我的~/.bashrc
,並且不會讓事情中斷或執行冗餘。隨着.bashrc
以上,PROMPT_COMMAND
擴展到mycommand; mycommand; mycommand; mycommand; ...
我有一個想法是基於;
拆分和重組:
PROMPT_COMMAND=$(echo "$PROMPT_COMMAND" | sed 's/^ *\(.*[^ ]\) *$/\1/' | sed 's/ *; */\n/g' | sed '/^$/d' | sort -u | tr '\n' ';')
然而,一些命令包括;
內的字符串和子shell命令,它打破了上面引號,括號和轉義字符被忽略。我怎樣才能乾淨地維護多個PROMPT_COMMAND
?