Então, eu descobri o que precisava fazer e descobri por que meu forro não estava funcionando. Eu precisava quebrar um pouco mais. Consegui finalmente definir o nome do computador como um prefixo para o cliente, os últimos seis dígitos do número de série (percebo que isso é um pouco arbitrário, mas é o que o cliente queria) e o ano em que o Macbook ou o iMac foi construído usando o seguinte. Eu ainda não tenho certeza porque meu forro não funciona, eu acho que é porque há um token desacoplado em algum lugar. Eu pude fazer isso funcionar por função como Toto sugeriu:
#!/bin/bash
# Logging
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>>/private/var/log/"$(basename $0)"_"$(date "+%Y%m%d_%H%M%S")".log 2>&1
# Variables
theSerial=$(system_profiler SPHardwareDataType | awk '/Serial/ {print $4}' | cut -c 7-)
theModel=$(system_profiler SPHardwareDataType | grep 'Model Name:' | awk -F': ' '{print $2;}')
lastFour=$(system_profiler SPHardwareDataType | awk '/Serial/ {print $4}' | cut -c 9-)
theYear=$(curl -s https://support-sp.apple.com/sp/product?cc=$lastFour | grep -o '\d\d\d\d')
#XXX is a client code slug
# Begin script
echo "Begin script: $(theNow)"
# Write: ComputerName, HostName, LocalHostName, NetBIOS
touch /private/var/log/fv2.log
scutil --set ComputerName "XXX-$theSerial-$theYear" #XXX is a client code slug
scutil --set HostName "XXX-$theSerial-$theYear"
scutil --set LocalHostName "XXX-$theSerial-$theYear"
defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName "XXX-$theSerial-$theYear"
echo "XXX-" > /private/var/log/fv2.log
# Finish up
echo "Finish Script: $theNow"
exit 0
Duas coisas - 1 - máquinas Apple mais antigas podem ter números de série com um número diferente de caracteres. Eu não acho que eles estarão no escopo da vida do meu roteiro, então eu não preciso contar os caracteres primeiro - então a Apple pode algum dia deixar de fornecer este serviço, ou reformatar adicionando outra string de 4 dígitos à linha de xml , que vai quebrar isso.
Estes são riscos aceitáveis para mim, mas podem quebrar isso no futuro. Esta é a única maneira de obter o ano de fabricação de um computador Apple em um var na linha de comando que eu conheço.
JC