Bash機能によりMC起動時間が長くなる

Bash機能によりMC起動時間が長くなる

bashコマンドの後に改行を保証する次の関数があります。

user at terra in ~
$ echo "m"
m
user at terra in ~
$ echo -n "m"
m↵

関数自体は次のとおりです.bashrc

function prompt_command {
    # get cursor position and add new line if we're not in first column
    echo -en "\033[6n" && read -sdR CURPOS
    [[ ${CURPOS##*;} -gt 1 ]] && echo "$(tput setab 1)↵$prompt_reset"
}
PROMPT_COMMAND=prompt_command

私がPROMPT_COMMAND設定すると、MCは10〜30秒ほど始まりますが、コメントするとほとんどすぐに始まります。

なぜこれが起こるのですか?この問題を無効にせずにどのように解決できますか?

strace、もう少しよく見てください13:59:06。 9秒遅れがあります...(通常)strace比較しよう)

ベストアンサー1

私が理解したのは、標準入力の入力を待っています。

`3021  13:58:57 read(0,  <unfinished ...>
3019  13:59:06 <... select resumed> )   = 0 (Timeout)`

それが何をしているのかを見つけなければなりません。しかし、私の推測は次のとおりです。

read -sdR CURPOS

read問題を解決したりタイムアウトを変更したりするには、それを削除できます。

おすすめ記事