Bash 견적 확장

Bash 견적 확장

bash다음 스타일로 스크립트에서 명령을 실행하고 싶습니다 .

rdiff-backup --verbosity 5 -somearguments -somemorearguments \
    --remote-schema 'ssh -i $keyfile -C %s' \
    sourcedir backup::/targetdir

--remote-schema주장과 관련하여 질문이 발생합니다. 나는해야만한다SSH 키변수(이 경우에는 $keyfile.

생성된 명령을 $rdiffcmd. 모든 것이 작동하는 것처럼 보이는 명령을 작성하는 데 아무런 문제가 없습니다. An은 echo $rdiffcmd주위에 필요한 따옴표를 표시합니다 --remote-schema. 하지만 rdiff-backup(로컬 측에서) 이해하지 못하는 메시지를 항상 받기 때문에 보이지 않는 확장 프로그램이 있어야 합니다 -i. 그래서 따옴표를 사용하지 않습니다.

원격 패턴을 그룹화하여 하나의 매개변수처럼 보이게 하려면 어떻게 해야 합니까?

echo $rdiffcmd이상한 점: 출력을 터미널에 붙여넣고 복사하면 작동합니다. 그러나 $rdiffcmd내 스크립트에 표시된 것처럼 위의 문제가 없습니다.

답변1

$keyfile공백 등이 포함된 경우 :

rdiff-backup --verbosity 5 -somearguments -somemorearguments \
    --remote-schema 'ssh -i "'"$keyfile"'" -C %s' \
    sourcedir backup::/targetdir

관련 정보