我如何 escape/finish 这个简单的 bash 别名 Mac?

how do I escape/finish this simple bash alias on Mac?

我想要实现的:我在终端输入s,25分钟后我收到了休息的通知。这是代码:

alias s='sleep 1500 && osascript -e 'display notification "break" with title "break"''

如果我包含最后一个 ',我会收到错误消息,如果我不包含,也会收到错误消息。

使用别名

可以将单引号字符串与单引号组合起来,如下所示:

$ echo 'a'\''b'
a'b

上面的'a'是单引号字符串。它后跟一个转义的单引号 \',然后是另一个单引号字符串 'b'。这样,就可以用单引号构建复杂的字符串了。

对于你的命令,它看起来像:

alias s='sleep 1500 && osascript -e '\''display notification "break" with title "break"'\'

使用函数

正如@Kevin 指出的那样,这更简单:

unalias s
s() { sleep 1500 && osascript -e 'display notification "break" with title "break"'; }