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)"
                     ^

오류 없이 이 변수를 두 가지 방법으로 설정할 수 있습니다.

  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)

답변2

Fish 3.4.0부터 구문을 사용하여 명령 대체를 인용할 수 있으므로 "$()"이제 원래 명령이 작동합니다.

관련 정보