Os comandos no script não são executados, mas no terminal eles são executados

0

Meu script é o seguinte:

#!/bin/sh

rm -rfv /home/user/Documents/Exercise/*

cp -rfv /home/user/Documents/ExerciseShare/ExerciseFiles/Word/Advanced/ /home/tp3/Documents/Exercise/

Se eu fosse para executar esses comandos individualmente via Terminal eles rodam ok. Eu os coloquei em um script (como acima) e quando tento sintonizar o script, as janelas do Terminal ficam piscando por cerca de um segundo e nada acontece.

Minhas tentativas de soluções:

  1. Adicionando wait ao final do script - sem sorte
  2. Script de clique direito > Propriedades > Permissões > Executar - definir
  3. Tentativa de Run e Run in Terminal - sem sorte

Estou usando o Ubuntu 12.10 de 64 bits

    
por Mitchell 20.03.2013 / 06:33

2 respostas

0

Depois de muitas horas de ajustes, encontrei uma resposta improvável.

Eu criei um novo documento em branco e adicionei apenas as duas linhas que eu queria (sem o título de #! / bin / sh):

rm -rfv /home/user/Documents/Exercise/*
cp -rfv /home/user/Documents/ExerciseShare/ExerciseFiles/Word/Advanced/ /home/tp3/Documents/Exercise/

Em seguida, salvei o documento, clique com o botão direito em > propriedades > permissões > executar como programa

Bingo!

Obrigado a todos que ajudaram!

    
por Mitchell 21.03.2013 / 01:07
0

De acordo com o seu comentário, você introduziu um retorno extra de carro (\ r) no final da sua linha de shebang

/bin/sh^M: bad interpreter

Se você abrir o arquivo original no vim, verá o caractere ^M ; você poderia simplesmente removê-lo. Ou você poderia abri-lo em um editor hexadecimal como hexedit, onde você veria um 0D extra.

As novas linhas do Linux são caracteres de nova linha única (\ n, 0x0A), ao contrário das novas linhas do Windows, que ainda remetem aos dias das máquinas de escrever (\ r \ n, 0x0D 0x0A).

    
por IlluminAce 22.03.2013 / 02:22