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"

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.