Ho scritto uno script per nuove installazioni macOS che installano Homebrew, Cask e un sacco di app che mi piacciono, oltre a creare un file .vimrc
.
Grazie a una risposta di daniel Azuelos (che si trova qui: Il modo migliore per verificare in bash se sono installati gli strumenti della riga di comando? ), una parte dello script verifica se sono installati gli strumenti da riga di comando Xcode.
Quando gli strumenti da riga di comando non sono installati, questo errore viene visualizzato all'utente:
xcode-select: error: unable to get active developer directory, use 'sudo xcode-select --switch path/to/Xcode.app' to set one (or see 'man xcode-select')
Spero che qualcuno possa aiutarmi a sopprimere questo output.
La funzione che viene eseguita per eseguire il controllo degli strumenti da riga di comando è:
function check_clt() {
if type xcode-select >&- && xpath=$( xcode-select --print-path ) && test -d "${xpath}" && test -x "${xpath}" ; then
echo ""
echo "The required Xcode command-line-tools are already installed! Moving on!"
sleep 3
else
instructions
sleep 45
xcode-select --install
fi
}
Credo di poter usare 2 > /dev/null
per sopprimere l'errore, ma non sono sicuro della funzione dove dovrebbe andare? L'ho messo prima di ogni &&
nell'istruzione if, ma il messaggio di errore è ancora apparso.
Utilizzando il suggerimento di Nimesh, ho modificato la funzione:
function check_clt() {
if type xcode-select 2>/dev/null >&- && xpath=$( xcode-select --print-path ) 2>/dev/null && test -d "${xpath}" 2>/dev/null && test -x "${xpath}" 2>/dev/null ; then
echo ""
echo "The required Xcode command-line-tools are already installed! Moving on!"
sleep 3
else
instructions 2>/dev/null
sleep 45
xcode-select --install
fi
}
L'esecuzione dello script produce ancora l'errore all'utente:
Last login: Tue Sep 4 20:40:13 on ttys000
vimusrs-Mac:~ vimusr$ cd Desktop/
vimusrs-Mac:Desktop vimusr$ chmod +x mai.sh
vimusrs-Mac:Desktop vimusr$ ./mai.sh
xcode-select: error: unable to get active developer directory, use 'sudo xcode-select --switch path/to/Xcode.app' to set one (or see 'man xcode-select')