将 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'"

相关内容