zen*_*ike 2 command-line scripting notifications
我正在玩Pushover,并认为如果我可以将它用作任何随机命令的参数会很酷,这样它就会在任务结束时运行 pushover 脚本,无论该任务是什么.
我不知道这是否可能,或者我将如何去做,但我想学习。
RasPi Stack Exchange 网站上的这个问题让我想到了它。但我认为它有很多用处,比如让你知道编译工作何时最终完成,以及它是否成功。
我认为它可能看起来像:
$ apt-get -b source packagename -pushover "Compile job complete."
Run Code Online (Sandbox Code Playgroud)
想法是在任何命令之后的参数“-pushover [在此处输入消息文本]”将执行 pushover 脚本,并使用他们的 API 通过他们的应用程序通知您。
所以我想问题是,有可能以这种方式做吗?如果是这样,我从哪里开始?如果没有,是否有更好的方法来完成同样的事情,而不受您正在运行的命令的限制?
我并没有锁定将它用作命令参数的想法,但我确实想要一种使用任何命令运行它的方法,而无需为每个命令编写单独的脚本。
我是 Linux 的新手,所以如果它是一个非初学者的想法,我也会接受这个答案,前提是有合理的解释为什么它不适合它。
你反过来做:
$ pushover-notify "This is my message" command arg1 arg2
Run Code Online (Sandbox Code Playgroud)
你的脚本pushover-notify
可能是这样的:
#!/bin/sh
TOKEN=your_token
USER=your_user
MSG="$1"
COMMAND="$2"
shift 2
if "$COMMAND" "$@" ; then
# here run your send-message script, with message "$MSG". for example:
curl -s \
-F "token=$TOKEN" \
-F "user=$USER" \
-F "message=$MSG" \
https://api.pushover.net/1/messages
else
# here send some message indicating failure, or don't do anything. for example:
curl -s \
-F "token=$TOKEN" \
-F "user=$USER" \
-F "message=command failed: $COMMAND $@" \
https://api.pushover.net/1/messages
fi
Run Code Online (Sandbox Code Playgroud)