rsyncコマンドの出力を通知メッセージに渡す(macOS)

rsyncコマンドの出力を通知メッセージに渡す(macOS)

これは一般的なUNIXの問題である可能性があるため、macOSに限定されません。 rsyncコマンドの出力を通知メッセージとして出力したいです。しかし、変数を正しく配置するのに成功しませんでした。私のコードが次のような場合:

RSYNC1="$(rsync --itemize-changes -avz -e ssh \
/Users/user/ server:/home/backup/ --delete)" && \
osascript -e 'display notification "${RSYNC1}" with title "Backup"'

その後、${RSYNC1}はこのように引用符をエスケープすると文字通り印刷されます。

osascript -e 'display notification \"${RSYNC1}\" with title "Backup"'

これにより、次のエラーが発生します。

> 21:22: syntax error: „given“, „in“, „of“, experssion, „with“,
> „without“, other parameter name, etc. expected, but unknown token
> found. (-2741)

何を変えるべきですか?

答え1

変数拡張を取得するには二重引用符を使用する必要があります。二重引用符内にリテラル二重引用符を印刷するには、エスケープする必要があります。

osascript -e "display notification \"${RSYNC1}\" with title \"Backup\""

または、二重引用符の中に一重引用符を使用してください。

osascript -e "display notification '${RSYNC1}' with title 'Backup'"

関連情報