У меня проблема с запуском одной команды из файла.
Когда я выполняю команду непосредственно в терминале, все работает, и программное обеспечение делает это хорошо. Если я пытаюсь запустить его из файла, постоянно возникает ошибка с одним файлом.
Если я запускаю его непосредственно в терминале с этой командой и полными путями, она работает:
/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
одинаков в обоих случаях; он правильно обрабатывается в терминале, но при попытке запустить его из скрипта возникает ошибка.
Эта строка является виновником:
xml= /home/lukas/Desktop/automatic/test/resample_s2.xml
Вы должны удалить пробел после =
. С пробелом он пытается выполнить правую часть назначения как отдельную команду, что объясняет, почему он показывает ошибки о «неожиданных токенах» в файле XML.