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”
...
この問題は新しい魚のセッションでは現れず、何がこの行動を引き起こすのか私にはわかりません。 これをさらにデバッグするにはどうすればよいですか?
このオプションは#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へのアップグレード後に私を噛みました。