Повторяющийся вывод printf() на стандартный вывод каждый раз, когда вызывается fork(), несмотря на то, что printf() вызывается до fork(). И почему '\n' исправляет это?

Однажды я где-то прочитал (уже не знаю где ), что использование \001и \002вместо \[и \]может решить эту проблему. Это было для меня.

Между прочим, определение PS1 не должно выглядеть безобразно.

green="\001$(tput setaf 2)\002"
blue="\001$(tput setaf 4)\002"
dim="\001$(tput dim)\002"
reset="\001$(tput sgr0)\002"

PS1="$dim[\t] " # [hh:mm:ss]
PS1+="$green\u@\h" # user@host
PS1+="$blue\w\$$reset " # workingdir$

export PS1
unset green blue dim reset
1
29.04.2020, 02:35
1 ответ

printfзаписал текст в буфер stdout , который, наконец, записывается в каждую ветвь форка с помощью вызова exit.

2
19.03.2021, 02:19

Теги

Похожие вопросы