Bien, 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.
No son los finales de línea (el script se creó solo a partir de 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 sea el sistema de archivos montado como noexec. Intenté ejecutar el script en 3 lugares diferentes: /tmp, ~ y /source.
ACTUALIZACIÓN 2: Ok, después de investigar más, creé el script dentro de /source, que es un dmg montado. Ahí es donde ejecuté xattr -l y no encontré nada. Cuando compré el script en ~ y ejecuté xattr -l, tenía el xattr com.apple.quarantine. Por 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 monto este dmg, se establece como cuarentena. ¿Cómo puedo decirle a mount que no lo monte con la bandera de cuarentena? Una vez que eliminé la bandera en ~, el script funcionó bien.
El script se estaba ejecutando desde dentro de un .dmg que tenía el indicador de cuarentena establecido. Cuando se montó el .dmg, lo estaba montando con un indicador de cuarentena que se hereda, pero no aparece. Desmonté el .dmg, eliminé el indicador de cuarentena y lo volví a montar, y todo estuvo bien.
Tengo una solución simple: cat configure.sh > test.sh y luego ejecute test.sh.
Resulta ser un problema del editor: https://discussions.apple.com/thread/3733470?start=30&tstart=0
bot47
Kylar
cm2
chmod +x file.sh; ./file.sh
. Tal vez ese sistema de archivos esté montado con el indicador "noexec".bmike
houbysoft
defaults write com.apple.LaunchServices LSQuarantine -bool NO
.Kylar
jaume