Macos 如何在Mac上转义/完成这个简单的bash别名?

Macos 如何在Mac上转义/完成这个简单的bash别名?,macos,bash,alias,Macos,Bash,Alias,我想要实现的是:我在终端中输入s,25分钟后我收到一个休息的通知。代码如下: alias s='sleep 1500 && osascript -e 'display notification "break" with title "break"'' 如果我包括了最后的,,如果我没有,我会得到一个错误 使用别名 可以将单引号字符串与单引号组合,如下所示: $ echo 'a'\''b' a'b 在上面的代码中,'a'是一个单引号字符串。它后面是一个转义的单引号\',后面是另一

我想要实现的是:我在终端中输入
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"'; }

您正在尝试嵌套单引号。它不起作用。哦,这就是为什么。我能做些什么来达到同样的效果呢?好吧,你可以想出如何正确地引用它,但对你来说,把它变成一个函数可能是最容易的。25分钟的睡眠时间是很长的。要获得更复杂(但不是特别困难)的实现,请查看
at(1)
atrun(8)