
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
。だから引用符を使用しません。
リモートパターンをグループ化して1つのパラメータのように見えるようにするにはどうすればよいですか?
echo $rdiffcmd
奇妙な点:出力を端末に貼り付けてコピーすると機能します。しかし、$rdiffcmd
私のスクリプトに示されているように、上記の問題はありません。
答え1
$keyfile
スペースなどが含まれている場合:
rdiff-backup --verbosity 5 -somearguments -somemorearguments \
--remote-schema 'ssh -i "'"$keyfile"'" -C %s' \
sourcedir backup::/targetdir