Tamam, benzer bir sorun yaşıyorum: -bash: Applications / mvim: / bin / sh: kötü yorumlayıcı: İşleme izin verilmiyor - ama aynı sorun değil. Aynı sonucu alıyorum.
Bunun com.apple.quarantine bayrağı olmadığını zaten doğruladım .
Bu satır sonları değil (script sadece vi'den oluşturuldu). Komut dosyasını kullanarak yürütebilirim:
bash simpleshell.sh
İşte sonuçlar:
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$
GÜNCELLEME: Dosya sisteminin noexec olarak monte edildiğine inanmıyorum. Komut dosyasını 3 farklı yerde çalıştırmayı denedim: / tmp, ~ ve / source.
GÜNCELLEME2: Tamam, daha fazla kazma sonra - ben / kaynak içinde, bir dmg monte olan komut dosyası oluşturdum. Burada xattr -l'yi çalıştırdım ve hiçbir şey bulamadım. Ben komut dosyasını cp'd ~ ve xattr -l koştu, sonra com.apple.quarantine xattr vardı. Bir öbek üzerinde / source için bağlama özniteliklerine baktım ve buldum:
/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)
Bu dmg'yi taktığımda karantina olarak ayarlanıyor. Mount'a karantina bayrağıyla bağlamamasını nasıl söyleyebilirim? ~ İşaretini kaldırdığımda script iyi çalıştı.
chmod +x file.sh; ./file.sh
. Belki de bu dosya sistemi "noexec" bayrađý ile monte edilmiţtir.
defaults write com.apple.LaunchServices LSQuarantine -bool NO
.