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