如何在bash上监听命令?

时间:2015-07-16 20:38:42

标签: bash listener webhooks slack-api

每当在bash中运行特定命令时,我都会尝试写入webhook。例如,调用ls时,运行脚本。

更具体地说,当运行命令spark时,我想使用他们的webhook来写一个松弛的通道。

1 个答案:

答案 0 :(得分:0)

在PATH中添加一个包装器。我们假设spark位于/usr/bin。如果您的用户' PATHS在/usr/local/bin之前有/usr/bin,然后您可以在/usr/local/bin/spark中执行此操作:

#!/bin/sh
[ "${_SPARK_WRAPPER_DONE}" ] || send-to-slack-here "$@"
export _SPARK_WRAPPER_DONE=1
exec /usr/bin/spark "$@"

...其中send-to-slack-here当然是您向Slack发送消息的代码。

您也可以将/usr/bin/spark移至/usr/bin/spark.real并将您的包装器放在原始可执行文件的位置。

如果您控制.bashrc,您还可以使用shell函数(尽管这可以在更少的情况下使用):

spark() {
  send-to-slack-here "$@"
  /usr/bin/spark "$@"
}