Bashスクリプトでunison-jzを使用する方法は?

Bashスクリプトでunison-jzを使用する方法は?

unison-jzbashコマンドラインではうまく機能しますが、スクリプトでは機能しません。スクリプト内では通常のコマンドに戻るようですunison。誰かがunison-jzbashスクリプトでこれを使用する方法を教えてもらえますか?


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)。


私がコマンドラインで行ったことは次のとおりです。

  1. スナップインストール:

    sudo snap install --devmode unison-jz

  2. 一貫した構成ファイルに次の行を追加しました。

    servercmd = /snap/bin/unison-jz.unison -ui text

  3. 19行をコメントアウトして、/etc/ssh/ssh_config次のようにします。

    # Include /etc/ssh/ssh_config.d/*.conf

  4. 実行の一貫性:

    unison profile_name -sshargs '-i ~/.ssh/privatekey'

これはbash対話型シェルでうまく機能します。

ベストアンサー1

おすすめ記事