Fishシェルを使用するときのMAKEFLAGSの正しい形式は何ですか?

Fishシェルを使用するときのMAKEFLAGSの正しい形式は何ですか?

コンパイル時間を短縮するには、アーチスウィキ状態、

マルチコア/マルチプロセッサシステムのユーザーは、同時に実行するジョブの数を指定できます。これは、たとえば、nproc使用可能なプロセッサの数を決定することによって実行できます MAKEFLAGS="-j$(nproc)"

Fish Shellで設定するとset -Ux MAKEFLAGS "-J$(nproc)"エラーが発生します。

fish: $(...) is not supported. In fish, please use '(nproc)'.
set -Ux MAKEFLAGS "-J$(nproc)"
                     ^

エラーなしでこの変数を2つの方法で設定できます。

  1. set -Ux MAKEFLAGS "-J(nproc)"

  2. set -Ux MAKEFLAGS '-J$(nproc)'

次のうち、正しいアプローチは何ですか?それともどちらも大丈夫ですか?

ありがとう

ベストアンサー1

どちらもありません。魚は命令の置き換えを引用できません。

set arg "-J(nproc)"
set -S arg
$arg: set in global scope, unexported, with 1 elements
$arg[1]: |-J(nproc)|

使用

set -Ux MAKEFLAGS "-J"(nproc)

おすすめ記事