Bash 스크립트에서 unison-jz를 사용하는 방법은 무엇입니까?

Bash 스크립트에서 unison-jz를 사용하는 방법은 무엇입니까?

unison-jzbash 명령줄에서는 잘 작동하지만 스크립트에서는 작동하지 않습니다. 스크립트 내에서는 일반 명령으로 돌아가는 것 같습니다 unison. 누군가 unison-jzbash 스크립트에서 이것을 사용하는 방법을 말해 줄 수 있습니까 ?


unison다음에 설명된 버전 충돌이 발생했습니다 .#583058우분투에 대해 제안된 솔루션은 대화형 셸에서 잘 작동합니다.

bash그러나 스크립트 내부에서도 동일한 작업을 수행 하고 싶습니다 .

#!/bin/bash
unison profile_name -sshargs '-i ~/.ssh/privatekey'

이것은 MWE 버전입니다 script.sh(실제로 스크립트는 더 복잡하지만 이 MWE를 확인했는데 동일한 잘못된 동작이 표시됩니다). 이전과 동일한 명령줄(다른 쉘에서도)에서 이 스크립트를 호출하면 스냅샷 버전 (대화형 쉘에서 호출할 때 사용됨) unison대신 일반 버전이 스크립트 내부에서 사용되는 것 같습니다. unison-jz따라서 동기화가 실패하고 동일한 콘텐츠가 표시됩니다.치명적 오류이전과 마찬가지로 "클라이언트와 서버 시스템에 서로 다른 버전의 Unison이 설치되어 있기 때문에 이런 일이 발생할 수 있습니다"라고 말하고 위의 방법으로 해결했습니다.

unison-jz쉘 스크립트가 일관된 버전 대신 캡처된 버전을 사용하도록 하려면 어떻게 해야 합니까 ?

클라이언트와 서버 모두 우분투에서 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대화형 쉘에서 잘 작동합니다.

관련 정보