Não é possível usar “./” para executar um script de shell

4

Talvez alguém aqui possa me ajudar. Ter instalado o Ubuntu 12.04 LTS (kubuntu) em duas máquinas. Os arquivos .bashrc e .bash_profile são idênticos, pois as estruturas de arquivos em cada máquina são as mesmas.

Na máquina 1 eu executo scripts bash dentro de uma janela de terminal com o simples: ./scriptname.sh

Na máquina 2, não consigo fazer isso e devo usar: sh scriptname.sh Nem eu posso usar o arquivo ./ e completar o nome do script.

Todos os bits executáveis estão definidos corretamente, todos os arquivos e pastas possuem as permissões corretas. No cabeçalho dos scripts, o shebang está definido corretamente.

Alguma idéia de por que isso estaria ocorrendo?

Felicidades

    
por adeliefan 05.11.2012 / 02:23

3 respostas

2

A única coisa que causaria isso é se o script não é executável. Eu sei que você disse que o bit executável está definido, mas certifique-se:

chmod +x scriptname.sh
    
por Josiah Kiehl 05.11.2012 / 03:07
1

Já li sobre vários problemas decorrentes do preenchimento automático, não necessariamente com 12.04, e as duas opções a seguir parecem valer a pena tentar:

Primeiro, tente desativar a conclusão programável do bash : Comente essas três linhas em /etc/bash.bashrc e no usuário $HOME/.bashrc :

 if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
     . /etc/bash_completion
 fi

Você pode descobrir que essas linhas já foram comentadas com # na frente, e nesse caso apenas deixe como está.

Então, em segundo lugar, tente reinstalar o bash-completion :

sudo apt-get purge bash-completion
sudo mv /etc/bash_completion.d /etc/bash_completion.d.bak
sudo apt-get install bash-completion
    
por Lars Rohrbach 05.11.2012 / 03:13
1

Os erros que você vê podem ser causados pela tentativa de executar um executável em uma mídia montada com a propriedade "noexe". Digite mount e examine as propriedades do dispositivo que contém o script. Altere as propriedades / etc / fstab da montagem, se necessário.

    
por ubfan1 05.11.2012 / 06:59