在 bash 函数中,如何在定义时将输出通过管道传输到 python 程序而不调用 python 程序?

在 bash 函数中,如何在定义时将输出通过管道传输到 python 程序而不调用 python 程序?

提前道歉,我不擅长编写 shell 脚本。

我有一个 bash 函数,如下所示:

tagDownload() {
    mp3 "$@" | /home/username/bin/tag.py
}

其中mp3是另一个 bash 函数,它生成 python 脚本使用的一些输出。该函数存储在一个点文件中,每当打开终端时都会获取该点文件。

我期望(并且希望)发生的是tagDownload其组成组件仅在被调用时被调用。实际发生的情况是,当打开新终端时获取包含此定义的点文件时,将调用 python 脚本。

我有两个问题:

  1. 我应该如何构建tagDownload,以便在获取其父文件时,不会调用 python 程序?
  2. bash 使用什么规则来确定某件事是调用还是语句?我以前也遇到过这样的问题,希望以后能避免这样的麻烦。

如果我的想法不正确,请纠正我。

答案1

正如问题评论中所讨论的,在 shell 中定义函数时,定义它的行为不会导致它被调用。

用户后来意识到,他们实际上是从另一个地方调用该函数,这导致 Python 脚本运行。

相关内容