web-dev-qa-db-ja.com

シェルスクリプト-不正なインタプリタ:操作は許可されていません

以下のスクリプトを「volume」というファイルに入れ、そのファイルを$ PATH内のフォルダーに入れます。 「bashthatpath/volume 10」で問題なく実行できますが、どこからでも「volume 10」だけで実行しようとすると、「/ bin/bash:不正なインタプリタ:操作が許可されていません」と表示されます。ファイルのアクセス許可は755です。

#!/bin/sh

FIRST_ARGUMENT="$1"
echo "Set volume to $FIRST_ARGUMENT!"
osascript -e "set volume output volume $FIRST_ARGUMENT"
4
Jonny

私はいくつかの同様の問題を読みました、そして彼らはまた行末が台無しにされるかもしれないと述べました。そこで、新しいファイルを開始し、それをもう一度入力して保存しました。 + x:edして、動作を開始しました。そうだと思いますが、行末が原因でした。テキストエディットで初めてファイルを編集しました。Windowsの行末を表示するべきではありませんが、とにかく修正されました。

0
Jonny

後世のために、BBEditで開いていたFinderでシェルファイルの名前を変更した後、Macでこれをヒットしました。次に、BBEditでファイルを変更して(新しいファイル名を正しく反映している)保存すると、スクリプトを実行できなくなりました。

私にとって、修正はBBEditを終了して再起動し、ファイルをもう一度保存するのと同じくらい簡単でした。 ???? ‍♂️

私の問題は、引数が含まれているかどうかに関係なく発生していました。

0
user2423555