差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
fish-shell [2019/01/21 10:37]
mumeiyamibito [リダイレクトとパイプ]
fish-shell [2019/07/19 11:56] (現在)
mumeiyamibito
ライン 179: ライン 179:
 </​code>​ </​code>​
   * 参考サイト:​ [[http://​fish.rubikitch.com/​begin/​ | begin:​一連のコードをまとめる【変数・リダイレクト・条件】]]   * 参考サイト:​ [[http://​fish.rubikitch.com/​begin/​ | begin:​一連のコードをまとめる【変数・リダイレクト・条件】]]
 +
 +==== fish-shell を導入したリモートに rsync や scp でアクセスできない ====
 +  * 【症状】fish-shell を導入したリモートに rsync や scp でファイルを転送しようとすると以下のエラーメッセージが表示される\\ <​code>​
 +protocol version mismatch -- is your shell clean?
 +(see the rsync man page for an explanation)
 +rsync error: protocol incompatibility (code 2) at compat.c(178) [sender=3.1.2]
 +</​code>​
 +  * 【原因】リモートに ssh にログインした際に、標準出力 (リモートサーバの状況やグリーティングなど) されるものがある場合にエラーになるらしい (bash など他のシェルでも同様の原因の問題があるらしい)。
 +  * 【解決方法】
 +    * ログイン時に実行される ''​config.fish''​ から、標準出力 (''​echo''​ など) を削除、あるいはコメントアウトする。
 +    * ログイン時に実行される ''​config.fish''​ の標準出力部分を ''​if status --is-interactive ... end''​ ブロックで囲む。
 +      * 対話シェルの時のみ表示するようにする。
 +      * 例: \\ <code bash>
 +if status --is-interactive
 +    echo "​test"​
 +end
 +</​code>​
 +  * 参考サイト:​ [[https://​github.com/​fish-shell/​fish-shell/​issues/​3473 | Rsync and sftp doesn'​t work when remote host uses fish shell · Issue #3473 · fish-shell/​fish-shell]]
  
 ===== 参考サイト ===== ===== 参考サイト =====
  • fish-shell.txt
  • 最終更新: 2019/07/19 11:56
  • by mumeiyamibito