Erro de sintaxe executando o comando de um script

3

Eu tenho um problema ao executar um comando de um arquivo.

Quando executo o comando diretamente no terminal, tudo está funcionando e o software faz isso bem. Se eu tentar executá-lo a partir do arquivo, há um erro com um arquivo o tempo todo.

Se eu o executar diretamente no terminal com este comando e caminhos completos, está funcionando:

/home/lukas/snap/bin/gpt /home/lukas/Desktop/automatic/test/resample_s2.xml -e -p /home/lukas/Desktop/automatic/test/resample_20m.properties -t  "/home/lukas/Desktop/automatic/outputs/processed.dim" /home/lukas/Desktop/automatic/inputs/S2A_MSIL2A_20170717T095031_N0205_R079_T34UCV_20170717T095631.SAFE/MTD_MSIL2A.xml 

Quando executo esse comando a partir de um script, ele gera um erro com um arquivo xml .

#!/bin/bash

gpt=/home/lukas/snap/bin/gpt
xml= /home/lukas/Desktop/automatic/test/resample_s2.xml
properties=/home/lukas/Desktop/automatic/test/resample_20m.properties
output=/home/lukas/Desktop/automatic/outputs/processed.dim
input=/home/lukas/Desktop/automatic/inputs/S2A_MSIL2A_20170717T095031_N0205_R079_T34UCV_20170717T095631.SAFE/MTD_MSIL2A.xml

$gpt $xml -e -p $properties -t $output $input

O erro é:

/home/lukas/Desktop/automatic/test/resample_s2.xml: line 1: syntax error near unexpected token 'newline'
/home/lukas/Desktop/automatic/test/resample_s2.xml: line 1: '<graph id="Resample_Sentinel-2">'

Eu executo é como:

bash gpt_test.sh

Mas o arquivo xml é o mesmo nos dois casos; ele está funcionando corretamente processado no terminal, mas há um erro quando tento executá-lo a partir de um script.

    
por zubro 11.09.2017 / 10:15

1 resposta

10

Esta linha é a culpada:

xml= /home/lukas/Desktop/automatic/test/resample_s2.xml

Você deve remover o espaço depois de = . Com o espaço, ele tenta executar a parte correta da atribuição como um comando separado, o que explica por que ele mostra erros sobre "tokens inesperados" no arquivo XML.

    
por Byte Commander 11.09.2017 / 10:20