unison-jz
bash 명령줄에서는 잘 작동하지만 스크립트에서는 작동하지 않습니다. 스크립트 내에서는 일반 명령으로 돌아가는 것 같습니다 unison
. 누군가 unison-jz
bash 스크립트에서 이것을 사용하는 방법을 말해 줄 수 있습니까 ?
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).
내가 명령줄에서 수행한 작업은 다음과 같습니다.
스냅 설치:
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
대화형 쉘에서 잘 작동합니다.