OK, sto riscontrando un problema simile a: -bash: Applicazioni / mvim: / bin / sh: cattivo interprete: operazione non consentita - ma non è lo stesso problema. Sto ottenendo lo stesso risultato.
Ho già verificato che non è il flag com.apple.quarantine.
E ' non è la fine riga (script è stato creato proprio da vi). Posso eseguire lo script usando:
bash simpleshell.sh
Ecco i risultati:
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$
AGGIORNAMENTO: Non credo che il filesystem sia montato come noexec. Ho provato a eseguire lo script in 3 posti diversi: / tmp, ~ e / source.
UPDATE2: Ok, dopo aver scavato di più - ho creato lo script inside / source, che è un dmg montato. È lì che ho eseguito xattr -l e non ho trovato nulla. Quando ho copiato la sceneggiatura su ~ ed eseguito xattr -l, ha avuto com.apple.quarantine xattr. In un sospetto, ho guardato gli attributi di mount per / source e ho trovato:
/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)
Quindi quando monto questo dmg viene impostato come quarantena. Come posso dire a mount di non montarlo con la bandiera di quarantena? Una volta rimosso il flag in ~, lo script è andato bene.
chmod +x file.sh; ./file.sh
. Forse quel filesystem è montato con il flag "noexec".
defaults write com.apple.LaunchServices LSQuarantine -bool NO
.