OK、私は同様の問題を抱えています:-bash:Applications / mvim:/ bin / sh:bad interpreter:Operation not allowed-しかし、それは同じ問題ではありません。私は同じ結果を得ています。
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:OK、掘り下げた後、マウントされたdmgである/ source内にスクリプトを作成しました。ここで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をマウントすると、隔離として設定されます。隔離フラグでマウントしないようにマウントに指示するにはどうすればよいですか?〜のフラグを削除すると、スクリプトは正常に実行されました。
chmod +x file.sh; ./file.sh
ます。おそらく、そのファイルシステムは「noexec」フラグでマウントされています。
defaults write com.apple.LaunchServices LSQuarantine -bool NO
。