Гаразд, у мене схожа проблема з: -bash: Applications / mvim: / bin / sh: поганий перекладач: Операція заборонена, але це не та сама проблема. Я отримую той же результат.
Я вже переконався, що це не прапор com.apple.quarantine.
Це не закінчення рядків (сценарій створений саме з vi). Я можу виконати сценарій, використовуючи:
bash simpleshell.sh
Ось результати:
fawkes:tmp kylar$ vi simpleshell.sh
fawkes:tmp kylar$ chmod +x simpleshell.sh
fawkes:tmp kylar$ ./simpleshell.sh
-bash: ./simpleshell.sh: /bin/bash: bad interpreter: Operation not permitted
fawkes:tmp kylar$ cat simpleshell.sh
#!/bin/bash
export FOO=Hey
echo $FOO
fawkes:tmp kylar$ which bash
/bin/bash
fawkes:tmp kylar$ bash simpleshell.sh
Hey
fawkes:tmp kylar$ xattr -l simpleshell.sh
fawkes:tmp kylar$
ОНОВЛЕННЯ: Я не вірю, що файлова система монтується як noexec. Я спробував запустити скрипт у трьох різних місцях: / tmp, ~ та / source.
UPDATE2: Добре, після більшого копання - я створив сценарій всередині / source, який є встановленим dmg. Ось де я побіг xattr -l і нічого не знайшов. Коли я cp'd сценарій ~ та запустив xattr -l, тоді він мав com.apple.quarantine xattr. Під час перегляду я переглянув атрибути mount для / source та виявив:
/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)
Тож коли я встановлюю цей dmg, він встановлюється як карантин. Як я можу сказати горі не встановлювати його з прапором карантину? Щойно я видалив прапор у ~, сценарій спрацював нормально.
chmod +x file.sh; ./file.sh
. Можливо, ця файлова система встановлена прапором "noexec".
defaults write com.apple.LaunchServices LSQuarantine -bool NO
.