バックグラウンドで2つの関連コマンドを実行する

バックグラウンドで2つの関連コマンドを実行する

バックグラウンドで2つのコマンドを実行する必要があります。

function "$arg1" "$agr2" arg3 && declare "workspaces=$arg3"

最初に完了したら、関数を実行してからワークスペースでarg3を初期化し(グローバル変数)、プロセス全体をバックグラウンドで実行する必要があります。

頑張った

function "$arg1" "$agr2" arg3 && declare "workspaces=$arg3" & //this didn't work
(function "$arg1" "$agr2" arg3 && declare "workspaces=$arg3") & //niether this

この場合、ワークスペースが初期化されないため、両方を同時に実行したくありません。

ベストアンサー1

私が経験している問題は、関数の$workspaces結果としてグローバル変数が設定されることを期待していることです。ただし、exportサブシェルでは現在、シェルにグローバル変数(シェル用語で)を設定することはできません。バックグラウンドでコマンドを実行する唯一の方法は、サブシェルで実行することです。したがって、バックグラウンドコマンドを実行するか一部として実行するdeclareexport、現在のシェルで変数は設定されません。これは達成しようとしているようです。

おすすめ記事