이 크레딧에 대한 크레딧을 요청할 수는 있지만 https://github.com/chcokr/osx-init/blob/master/install.sh에 묻혔습니다.
이것은 UI에 로그인하지 않고 10.10 헤드리스 VM에서 작동했습니다. 10.9-10.14 이상과의 호환성을 위해 적용된 업데이트
touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress;
PROD=$(softwareupdate -l |
grep "\*.*Command Line" |
head -n 1 | awk -F"*" '{print $2}' |
sed -e 's/^ *//' |
tr -d '\n')
softwareupdate -i "$PROD" --verbose
rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
이것은 하나의 결과 만 가정
softwareupdate -l | grep "\*.*Command Line"
합니다. 여러 버전을 반환하는 경우 더 구체적인 논리가 필요할 수 있습니다. (나는 재현 사건이 없다)
10.10-10.14에서 작동하는 것으로 보이는 한 가지 변형 (제한된 테스트) (10.9는 CLI 도구 이름에 osx 버전 번호를 반환하지 않습니다.
PROD=$(softwareupdate -l |
grep "\*.*Command Line.*$(sw_vers -productVersion|awk -F. '{print $1"."$2}')" |
head -n 1 | awk -F"*" '{print $2}' |
sed -e 's/^ *//' |
tr -d '\n')
몇 가지 예제 결과 :
* Command Line Tools (OS X Mavericks)-6.2
* Command Line Tools (OS X 10.10) for Xcode-7.2
* Command Line Tools (macOS El Capitan version 10.11) for Xcode-8.2
* Command Line Tools (macOS High Sierra version 10.13) for Xcode-10.1
* Command Line Tools (macOS Mojave version 10.14) for Xcode-10.1