bash中的变量替换

R S*_*R S 2 bash

我最近发现notify-send,它打开了一个通知窗口,所以我可以做以下事情:

compile && notify-send "Done!" || notify-send "Failed"
Run Code Online (Sandbox Code Playgroud)

这让我觉得我想创建一个变量:

export NS="&& notify-send \"Done!\" || notify-send \"Failed\""
Run Code Online (Sandbox Code Playgroud)

然后我可以轻松地将它添加到我想要通知的许多命令行:

compile $NS
send-big-file $NS
start-a-heavy-job $NS
Run Code Online (Sandbox Code Playgroud)

但是这显然不能正常工作,我似乎无法想出可变替换的正确组合,以使其工作......任何想法?

Kei*_*son 6

编写一个以命令作为参数的函数(未经测试):

ns() {
    "$@" && notify-send Done || notify-send Failed
}

ns compile
...
Run Code Online (Sandbox Code Playgroud)