Script de shell - intérprete ruim: Operação não permitida

4

Eu coloquei o script abaixo em um arquivo chamado "volume", e coloquei esse arquivo em uma pasta dentro de $ PATH. Eu posso executá-lo bem por "bash thatpath / volume 10", mas quando eu tento executá-lo usando apenas "volume 10" de qualquer lugar eu recebo "/ bin / bash: intérprete ruim: Operação não permitida". As permissões do arquivo são 755.

#!/bin/sh

FIRST_ARGUMENT="$1"
echo "Set volume to $FIRST_ARGUMENT!"
osascript -e "set volume output volume $FIRST_ARGUMENT"
Jonny
fonte
4
O FS está montado noexec? É possível que o arquivo tenha finais de linha do Windows (CR + LF em vez de apenas LF)? unix.stackexchange.com/questions/6821/bash-wont-execute-files
user55325
1
Eu li alguma questão semelhante e eles também notaram que os finais de linha podem estar confusos. Então eu comecei um novo arquivo e digitei tudo isso mais uma vez e salvei. + x: ede e começou a funcionar. Então eu acho que sim, os finais de linha foram os culpados. Eu editei o arquivo pela primeira vez com o TextEdit, ele não deveria dar finais de linha do Windows, mas de qualquer forma, ele é corrigido agora.
Jonny
o strings comando deve ajudá-lo a corrigir o problema sem ter que digitar manualmente todo o arquivo novamente.
Reuben L.
Jonny, você deveria responder sua própria pergunta.
MrDaniel

Respostas:

0

Eu li alguma questão semelhante e eles também notaram que os finais de linha podem estar confusos. Então eu comecei um novo arquivo e digitei tudo isso mais uma vez e salvei. + x: ede e começou a funcionar. Então eu acho que sim, os finais de linha foram os culpados. Eu editei o arquivo pela primeira vez com o TextEdit, ele não deveria dar finais de linha do Windows, mas de qualquer maneira, ele é corrigido agora.

Jonny
fonte