OK, saya mengalami masalah yang mirip dengan: -bash: Aplikasi / mvim: / bin / sh: bad interpreter: Operasi tidak diizinkan - tetapi ini bukan masalah yang sama. Saya mendapatkan hasil yang sama.
Saya sudah memverifikasi bahwa ini bukan bendera com.apple.quarantine.
Ini bukan akhiran baris (skrip dibuat hanya dari vi). Saya dapat menjalankan skrip dengan menggunakan:
bash simpleshell.sh
Inilah hasilnya:
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$
UPDATE: Saya tidak percaya itu sistem file yang dipasang sebagai noexec. Saya sudah mencoba menjalankan skrip di 3 tempat berbeda: / tmp, ~, dan / source.
UPDATE2: Ok, setelah menggali lagi - saya membuat skrip di dalam / sumber, yang merupakan dmg yang terpasang. Di situlah saya menjalankan xattr -l dan tidak menemukan apa pun. Ketika saya membuat script untuk ~ dan menjalankan xattr -l, ia kemudian memiliki xattr com.apple.quarantine. Pada firasat, saya melihat atribut mount untuk / sumber dan menemukan:
/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)
Jadi ketika saya memasang dmg ini sudah ditetapkan sebagai karantina. Bagaimana saya bisa memberi tahu mount untuk tidak memasangnya dengan bendera karantina? Setelah saya menghapus bendera di ~, skrip berjalan dengan baik.
chmod +x file.sh; ./file.sh
. Mungkin filesystem yang dipasang dengan bendera "noexec".
defaults write com.apple.LaunchServices LSQuarantine -bool NO
,.