OK, sto riscontrando un problema simile a: - bash: Applications / mvim: / bin / sh: interprete non valido: operazione non consentita - ma non è lo stesso problema. Sto ottenendo lo stesso risultato.
Ho già verificato che è non il flag com.apple.quarantine.
È non le terminazioni di riga (lo script è stato creato solo 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$
UPDATE: Non credo che il filesystem sia montato come noexec. Ho provato a eseguire lo script in 3 posizioni diverse: / tmp, ~ e / source.
UPDATE2: Ok, dopo aver scavato di più - ho creato lo script all'interno / source, che è un dmg montato. Ecco dove ho eseguito xattr -l e non ho trovato nulla. Quando ho copiato lo script in ~ e ho eseguito xattr -l, allora aveva il com.apple.quarantine xattr. Su un sospetto, ho esaminato gli attributi di mount per / source e 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 il flag di quarantena? Una volta rimosso il flag in ~, lo script è andato bene.