Você deve
-
verifique o script em busca de qualquer "caractere oculto" antes da parte "/ home" (isso explicaria que ele não pode ser copiado para ele, e por que a exibição trunca parte dela também). Por exemplo: cat -ve THEFILE #
-emarcará cada extremidade da linha com um$e-vmostrará alguns dos caracteres de controle no formato^x, ex:^Mpara o caractere de controle "Retorno de carro". -
Corrigir: Para isso, digite um exemplo de trabalho em seu shell, copie-o usando o mouse, edite o script, exclua a linha e cole o que você copiou em seu lugar. (no vi: se o script é exatamente como descrito (e a linha defeituosa é a linha 4): você vai para a linha 4 com
4Ge, em seguida, exclui essa linha comdd, e entre no modo Insert na linha acima com:O(capital o). Então você pode colar as linhas que copiou com o mouse, entãoEscapepara voltar ao modo de comando, e:wqpara gravar as alterações no arquivo e sair do vi. -
Você pode comparar a saída $ (pwd) com o valor $ PWD: tente substituir:
echo $PWDpor:pwd ; echo "PWD=$PWD" -
finalmente:
bash . script.shdeve ser:bash ./script.sh. O que você digitou pede bash para executar "." com o argumento "script.sh" e "." sendo um diretório, o bash reclama. Quando invocada dessa maneira, a reclamação geralmente está no formato:program_name: some message. Aqui o bash tenta executar o programa., então sua mensagem de erro usa erroneamente.:como o prompt do nome do programa, e a mensagem que ele exibe é.: is a directory, indicando que não pôde executá-lo e por quê (é um diretório, não um script bash). -
Observe que, quando você invode script.sh dessa maneira (bash ./script.sh), você solicita ao seu shell atual para invocar um subwell
bashque executaráscript.she sairá. Apenas esse subshell bash será: ecoando o PWD, em seguida, cd-indo para o diretório, o eco do novo PWD. Quando esse bash sai, seu shell atual ainda está no diretório original. Se você quiser que um arquivo faça alterações no seu shell atual, coloque-o em seu lugar:. ./script.shou no bash você também podesource ./script.sh(nota:.é a maneira mais portátil de criar um arquivo) (nota 2: ter um caminho para o arquivo é recomendado no shell recente, ou seja:. script.shpode funcionar também, mas é recomendado especificar o caminho local como:. ./script.sh)