在运行交互式命令之前和之后运行命令

问题描述 投票:0回答:3

我有一个说intr-cmd的命令,它将打开Web框架的交互式控制台。但是我需要在手动运行cmd-a之前先运行命令cmd-b,然后再运行intr-cmd。这些命令更改某些文件以使intr-cmd运行。

我如何在Bash中编写代码,这样我只需要运行intr-cmd并且这些命令可以在它之前和之后运行。

编辑:一些解释

intr-cmd打开一个交互式控制台,但首先读取当前安装的插件文件以加载它们。但是有一个插件已安装在生产环境中,但无法在本地环境中使用,因此对于我的工作而言不是必需的。但插件文件已提交到git中。因此,我必须对插件进行注释,然后运行intr-cmd,然后取消注释文件中的该行。

我想自动化此步骤,以免意外将其提交到git中。

bash shell terminal
3个回答
1
投票

您可以创建一个运行intr-cmd-wrappercmd-a && intr-cmd && cmd-b函数,然后调用该函数而不是intr-cmd

或者,如果intr-cmd是可执行文件,则可以创建运行intr-cmdcmd-a && /path/to/intr-cmd && cmd-b函数。

就您的特定情况,据我所知,您可能想做这样的事情:

intr-cmd() {
    cmd-a &&

    /path/to/intr-cmd & # launch intr-cmd in background
    sleep 2s # sleep for 2 seconds, or however long it takes intr-cmd to get started
    cmd-b
}

0
投票

根据您的情况,无需每次都更改intr-cmd,而是可以为测试环境创建一个git分支(可能在git repo的特定克隆中),并使用intr-cmd的修改版本,和/或插件列表的修改版本。


0
投票

您可以创建一个函数intr-cmd,它代替常规的intr-cmd命令,如here所述。

我想要:

intr-cmd()
{
  cmd-a
  /path/intr-cmd
  cmd-b
}

(显然您需要填写正确的路径。)

我试图将您的问题标记为重复,但是由于该链接指向另一个StackExchange论坛,因此不允许这样做,因此是此答案。

© www.soinside.com 2019 - 2024. All rights reserved.