De acuerdo, tengo un problema similar a: - bash: Aplicaciones / mvim: / bin / sh: mal intérprete: operación no permitida - pero no es el mismo problema. Estoy obteniendo el mismo resultado.
Ya verifiqué que no es el indicador com.apple.quarantine.
Es no los finales de línea (el script se creó solo desde vi). Puedo ejecutar el script usando:
bash simpleshell.sh
Aquí están los resultados:
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$
ACTUALIZACIÓN: no creo que se esté montando el sistema de archivos como noexec. He intentado ejecutar el script en 3 lugares diferentes: / tmp, ~ y / source.
ACTUALIZACIÓN2: Ok, después de más excavaciones: creé el script en / source, que es un dmg montado. Ahí es donde corrí xattr -l y no encontré nada. Cuando envié el script a ~ y ejecuté xattr -l, tenía el com.apple.quarantine xattr. En una corazonada, miré los atributos de montaje para / source y encontré:
/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)
Entonces, cuando instalo este dmg, se configura como cuarentena. ¿Cómo puedo decirle a mount que no lo monte con la bandera de cuarentena? Una vez que quité la bandera en ~, el script funcionó bien.