Синтаксическая ошибка при запуске команды из скрипта

У меня проблема с запуском одной команды из файла.

Когда я выполняю команду непосредственно в терминале, все работает, и программное обеспечение делает это хорошо. Если я пытаюсь запустить его из файла, постоянно возникает ошибка с одним файлом.

Если я запускаю его непосредственно в терминале с этой командой и полными путями, она работает:

/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 

Когда я запускаю эту команду из скрипта, она выдает ошибку с файлом xml. [ 119]

#!/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

Ошибка:

/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">'

Я выполняю как:

bash gpt_test.sh

Но файл xml одинаков в обоих случаях; он правильно обрабатывается в терминале, но при попытке запустить его из скрипта возникает ошибка.

2
задан 11 September 2017 в 14:04

1 ответ

Эта строка является виновником:

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

Вы должны удалить пробел после =. С пробелом он пытается выполнить правую часть назначения как отдельную команду, что объясняет, почему он показывает ошибки о «неожиданных токенах» в файле XML.

0
ответ дан 11 September 2017 в 14:04

Другие вопросы по тегам:

Похожие вопросы: