0

私はこのループを持っていますconfig.fish:

set W_COLS (tput cols)

for x in (seq $W_COLS)
  echo $x
end

これはうまく機能し、端末の幅を繰り返します。私は以下を取得して出力します:

1
2
3
.
.
.
80

番号を改行せずに並べて印刷したいと思います。

やってみecho -n $xましたが、これによりループが機能しなくなり、必要最小限のシェルが得られました。

Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
>

ループが失敗するのはなぜですか?

4

1 に答える 1

1

ちょっとした質問のコンテキスト: これはfish_prompt関数内で起こっています。この関数は、直接呼び出された場合は機能しますが、プロンプトとして呼び出された場合は機能しません。

問題は、ターミナル ウィンドウが狭すぎて、文書化されていない理由でフィッシュが気に入らないことです。この問題を回避するには

  1. 端末の長さより 1 文字少ない文字を表示する
  2. ループの後に改行を入れる

ループは次のようになります

for x in (seq (math $W_COLS - 1))
    echo -n '-'
end
echo

主に #fish の adisbladis に感謝します

于 2013-06-13T14:36:51.953 に答える