
コンパイル時間を短縮するには、アーチスウィキ状態、
マルチコア/マルチプロセッサシステムのユーザーは、同時に実行するジョブの数を指定できます。これは、たとえば、
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つの方法で設定できます。
set -Ux MAKEFLAGS "-J(nproc)"
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)
答え2
Fish 3.4.0以降、構文を使用してコマンド置換を引用することができるので、元の"$()"
コマンドが機能します。