컴파일 시간을 단축하려면,아치스 위키상태,
멀티 코어/멀티 프로세서 시스템 사용자는 동시에 실행할 작업 수를 지정할 수 있습니다. 이는 예를 들어
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)"
^
오류 없이 이 변수를 두 가지 방법으로 설정할 수 있습니다.
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부터 구문을 사용하여 명령 대체를 인용할 수 있으므로 "$()"
이제 원래 명령이 작동합니다.