Кажется, что существует две основные версии скрипта.
Первый похож на ваш, за исключением того, что «возврат нажатия клавиши» дублируется дважды ( источник ):
osascript <<EOF tell application "System Events" keystroke "USERNAME" keystroke tab delay 0.5 keystroke "PASSWORD" delay 0.5 keystroke return keystroke return end tell EOF
Кто-то даже понял, что дважды не достаточно
osascript <<EndOfMyScript tell application "System Events" keystroke "USERNAME" keystroke tab delay 0.5 keystroke "PASSWORD" delay 0.5 keystroke return keystroke tab delay 0.5 keystroke "PASSWORD" delay 0.5 keystroke return keystroke return keystroke return keystroke return keystroke return end tell EndOfMyScript
В то время как кто-то еще предпочитает это решение, которое будет работать, если у вас есть список пользователей с «Другое ...», отображаемым в окне входа в систему:
osascript <<EOT set username_ to "username" set password_ to "password" tell application "System Events" key code 125 -- Down Arrow key code 125 -- Down Arrow delay 1 key code 125 -- Down Arrow key code 125 -- Down Arrow key code 125 -- Down Arrow key code 125 -- Down Arrow key code 125 -- Down Arrow key code 125 -- Down Arrow delay 0.5 key code 36 -- Return delay 1 tell process "SecurityAgent" to set value of text field 1 of group 1 of window 1 to username_ tell process "SecurityAgent" to set value of text field 2 of group 1 of window 1 to password_ click button "Log In" of window 1 of application process "SecurityAgent" end tell EOT
(Ответ от пользователя, не являющегося Mac)