좋아, 나는 비슷한 문제가있다 : -bash : Applications / mvim : / bin / sh : 잘못된 인터프리터 : 작업이 허용되지 않는다 -그러나 같은 문제는 아니다. 나는 같은 결과를 얻고 있습니다.
com.apple.quarantine 플래그 가 아닌 것을 이미 확인했습니다 .
줄 끝 이 아닙니다 (스크립트는 vi에서만 만들어졌습니다). 다음을 사용하여 스크립트를 실행할 수 있습니다.
bash simpleshell.sh
결과는 다음과 같습니다.
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$
업데이트 : 나는 그것이 noexec로 마운트 된 파일 시스템이라고 생각하지 않습니다. / tmp, ~ 및 / source의 3 가지 다른 위치에서 스크립트를 실행하려고했습니다.
UPDATE2 : 좋아, 더 파고 나면 / source 안에 마운트 된 dmg 인 스크립트를 만들었습니다. 여기서 xattr -l을 실행했지만 아무것도 찾지 못했습니다. 스크립트를 ~로 cp하고 xattr -l을 실행하면 com.apple.quarantine xattr이 생겼습니다. 순식간에 / source에 대한 마운트 속성을보고 다음을 발견했습니다.
/dev/disk1s9 on /Volumes/code (hfs, local, nodev, nosuid, journaled, noowners, quarantine, mounted by kylar)
이 dmg를 마운트하면 격리로 설정됩니다. 격리 플래그로 마운트하지 않도록 mount에 알리려면 어떻게해야합니까? ~에서 플래그를 제거하면 스크립트가 정상적으로 실행되었습니다.
chmod +x file.sh; ./file.sh
있습니다. 해당 파일 시스템이 "noexec"플래그로 마운트되었을 수 있습니다.
defaults write com.apple.LaunchServices LSQuarantine -bool NO
?