
unison-jz
bashコマンドラインではうまく機能しますが、スクリプトでは機能しません。スクリプト内では通常のコマンドに戻るようですunison
。誰かがunison-jz
bashスクリプトでこれを使用する方法を教えてもらえますか?
unison
次のバージョンの競合が発生しました。#583058Ubuntu用に提案されたソリューションは、対話型シェルでうまく機能します。
bash
しかし、スクリプト内でも同じことをしたいと思います。
#!/bin/bash
unison profile_name -sshargs '-i ~/.ssh/privatekey'
これはMWEバージョンですscript.sh
(実際にはスクリプトはより複雑ですが、このMWEを確認しましたが、同じ誤った動作が表示されます)。以前と同じコマンドライン(他のシェルでも)でこのスクリプトを呼び出すと、スナップショットバージョン(対話型シェルから呼び出すときに使用されます)ではなく、通常のバージョンがunison
スクリプト内で使用されているようです。unison-jz
したがって、同期が失敗し、同じコンテンツが表示されます。致命的なエラー以前と同様に、「クライアントとサーバーシステムに異なるバージョンのUnisonがインストールされているため、これが発生する可能性があります」と述べ、上記の方法で解決しました。
unison-jz
シェルスクリプトが一貫したバージョンではなくキャプチャされたバージョンを使用するようにするにはどうすればよいですか?
クライアントとサーバーの両方がUbuntuでbashシェルを使用しています(クライアント:20.04、サーバー:18.04)。
私がコマンドラインで行ったことは次のとおりです。
スナップインストール:
sudo snap install --devmode unison-jz
一貫した構成ファイルに次の行を追加しました。
servercmd = /snap/bin/unison-jz.unison -ui text
19行をコメントアウトして、
/etc/ssh/ssh_config
次のようにします。# Include /etc/ssh/ssh_config.d/*.conf
実行の一貫性:
unison profile_name -sshargs '-i ~/.ssh/privatekey'
これはbash
対話型シェルでうまく機能します。