O script multissistema não funciona! “Erro de sintaxe: redirecionamento inesperado” Funcionou há 2 dias?

0

esta é minha primeira pergunta.

Eu uso o Multisystem o tempo todo e o instalei tanto no Kubuntu quanto no Ubuntu e usei-o sem problemas. Limpei meu disco rígido para experimentar alguns novos sistemas operacionais Agora estou usando exatamente o mesmo sistema operacional (Ubuntu 12.05) Eu costumava carregar meu pendrive USB para começar e agora estou recebendo este erro de sintaxe ridículo. Eu sei que o script está correto, estou seguindo exatamente os mesmos passos que usei para chegar a este ponto e estou obtendo resultados diferentes?!?! Estou muito confuso com isso.

Não tenho ideia de como começar a abordar esse problema. Eu também recebo o mesmo erro de sintaxe no Kubuntu, que tinha um sistema multissistema instalado.

Eu corro "sh install-depot-multisystem.sh" e recebo "Syntax error: redirection unexpected", isso funcionou literalmente há 2 dias. A única coisa que mudou foi o meu rosto ter crescido um pouco mais de pêlos faciais e minha cabeça doer por ter batido contra a parede por causa dessa questão.

O SO é exatamente o mesmo, o script é o mesmo; mas agora não vai instalar. Estou perdido e realmente esperando que alguém possa ajudar.

Anexar

Apenas para acrescentar um pouco

link

Eu precisava fazer um chmod 777 no script, ainda estou recebendo um erro de sintaxe no Kubuntu ... mas ele foi instalado com sucesso. Vou marcar isso como resovled!

De qualquer forma, vou tentar usar minhas habilidades em Linux.

    
por user74005 29.06.2012 / 13:01

2 respostas

3

O script foi eficaz mesmo com o erro de sintaxe, então parece que essa questão realmente se resume a como executar um script .

Executando como um arquivo executável

Para executar um script que esteja no diretório atual sem invocar explicitamente o shell , você deve preceder seu nome com ./ . Também deve ser executável.

chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh

Isso só funcionará se o script começar com uma linha de hashbang especificando qual shell deve ser executado isso.

Se você executou chmod 777 no script, e isso ajudou, então o motivo pelo qual isso ajudou foi quase certamente que ele deu a você, como proprietário do script, permissões de execução no script. Você também deu a si mesmo e a todos os outros usuários permissões de leitura e gravação, bem como permissão de execução para todos os outros usuários. Isso é desnecessário, potencialmente um sério problema de segurança. chmod u+x é tão bom e muito mais seguro.

Invocando o Shell

Como alternativa, você pode executar o script invocando explicitamente o shell, como você tentou inicialmente:

sh install-depot-multisystem.sh

O script tem uma extensão .sh , por isso deve ser executado com sh . Mas caso o autor do script o tenha dado mal, e é realmente um script bash , você pode tentar rodar com bash (como geirha sugerido):

bash install-depot-multisystem.sh

Em execução no shell atual

Isso está incluído apenas para preenchimento completo - a menos que você tenha escrito o roteiro e saiba que isso funcionará corretamente, ou as instruções que acompanham o script digam para executá-lo dessa maneira, você deve usar um dos dois métodos anteriores. Muitos scripts só funcionarão direito se tiverem seu próprio shell no qual executar (o que é realizado por um dos dois métodos acima).

Com isso dito, você pode tentar executar o script no shell atual, com o ambiente do shell atual, com um dos seguintes comandos:

. install-depot-multisystem.sh
source install-depot-multisystem.sh

Executando como root

Se o script estiver instalando um programa ou serviço em todo o sistema, talvez seja necessário executá-lo como root. Não execute um script (nem nada) como root, a menos que você saiba que precisa fazer isso.

Para executá-lo como root, coloque sudo na frente do comando que o executa. Qualquer um desses três comandos funcionará (embora o primeiro ainda exija permissões de execução):

sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh
    
por Eliah Kagan 06.07.2012 / 14:49
-1

isso não é é festa Não use "sh install-depot-multisystem.sh" é só usar: install-depot-multisystem.sh

    
por frafa 06.07.2012 / 12:47