В вашем скрипте существуют следующие проблемы:
Переменная, установленная в разделе AppleScript, становится определенной в прилагаемом скрипте оболочки. Вы должны сделать обмен данными со сценарием оболочки, используя подстановку команд.
AppleScripts, вызванные из сценария оболочки, не могут взаимодействовать с пользователем, потому что у них нет контекста приложения. Вы можете использовать вспомогательное приложение "AppleScript Runner" для запуска команд взаимодействия с пользователем.
Вот пересмотренная версия вашего скрипта, в которой исправлены эти проблемы:
#!/bin/bash
myfile=$(/usr/bin/osascript << EOT
tell app "AppleScript Runner"
activate
return posix path of (choose file)
end
EOT)
if [ $? -eq 0 ]
then
echo $myfile
else
echo "User canceled"
fi