bash関数でpythonプログラムを呼び出さずに定義するときに出力をpythonプログラムにパイプするにはどうすればよいですか?

bash関数でpythonプログラムを呼び出さずに定義するときに出力をpythonプログラムにパイプするにはどうすればよいですか?

あらかじめごめんなさい。私はシェルスクリプトを書くのに苦手です。

以下のbash機能があります。

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

その中には、mp3Pythonスクリプトで使用されるいくつかの出力を生成する別のbash関数があります。関数は、端末が開かれるたびにインポートされるドットファイルに保存されます。

私が期待する(そして望む)ことは、tagDownloadコンポーネントが呼び出されたときにのみ呼び出されることです。実際に起こるのは、新しい端末が開かれたときにこの定義を含むドットファイルをインポートすると、Pythonスクリプトが呼び出されることです。

2つの質問があります。

  1. tagDownload親ファイルをインポートするときにPythonプログラムが呼び出されないようにどのように設定する必要がありますか?
  2. bashは呼び出しかステートメントかを決定するためにどのようなルールを使用しますか?私は以前この問題を経験しており、今後はこの問題が発生しないことを願っています。

私の考えが間違っていたら訂正してください。

ベストアンサー1

質問コメントで説明したように、関数がシェルで定義されている場合、関数を定義しても関数は呼び出されません。

ユーザーは後で実際に他の場所で関数を呼び出しており、これがPythonスクリプトを実行することに気づきました。

おすすめ記事