Fish-shell: ときどき `コマンド:不明なオプション“ -q”`

作成日 2017年02月14日  ·  3コメント  ·  ソース: fish-shell/fish-shell

  • [x]魚2.5.0で問題が発生するかどうかを確認し
  • []サードパーティのカスタマイズなしで魚を試しましたsh -c 'env HOME=$(mktemp -d) fish'確認してください)

インストールされている魚のバージョンfish --version

2.5.0

使用したOS /端末

Archlinux。 URxvt

フィッシュシェルセッションをしばらく使用した後、 -qオプションを使用すると、組み込みのcommandが失敗する状態になります。 これは、コマンドライン( command -sqを呼び出す)をキャンセルしていることに気付くことがあります。

ogondza<strong i="24">@arch</strong> ~ $ date
2017-02-14 15:01:20
# Up and Ctrl + C
ogondza<strong i="25">@arch</strong> ~ $ datecommand: Unknown option “-sq”
/usr/share/fish/functions/__fish_cancel_commandline.fish (line 12):         if command -sq tput
                                                                               ^
in function “__fish_cancel_commandline”
    called on standard input


       command -- run a program

   Synopsis
       command [OPTIONS] COMMANDNAME [ARGS...]

   Description
       ...
       Additionally passing a -q or --quiet option prevents any paths from
       being printed, like the type -q, for testing only the exit status.
       ...

これは、魚がこの状態になると、次の方法で簡単に再現できます。

ogondza<strong i="29">@arch</strong> ~ $ type command
command is a builtin
ogondza<strong i="30">@arch</strong> ~ $ command -s test
/usr/bin/test
ogondza<strong i="31">@arch</strong> ~ $ command -s -q test
command: Unknown option “-q”
...

この問題は新しい魚のセッションでは現れず、何がこの行動を引き起こすのか私にはわかりません。 これをさらにデバッグするにはどうすればよいですか?

question

全てのコメント3件

このオプションは#3591を介して追加され、2.5.0リリースに含まれています。

最も可能性の高い原因は、新しいスクリプトをロードする古い魚を実行していることです- echo $FISH_VERSIONはこれを確認する必要があります。 解決策はそれをやめることです。

編集:つまり、古いインスタンスを終了して新しいインスタンスを開始すると、これは自動的にクリアされるはずです。 たとえば、再起動すると、これは完全に消えます。

ogondza<strong i="5">@arch</strong> ~ $ fish -version
fish, version 2.5.0
ogondza<strong i="6">@arch</strong> ~ $ echo $FISH_VERSION 
2.4.0

それが問題のようです。 ありがとう。

要約をFAQまたはWikiに移動しましょう。
これは、2.4.0から2.6.0へのアップグレード後に私を噛みました。

このページは役に立ちましたか?
0 / 5 - 0 評価