Я использую Matlab для печати небольшого текстового файла (temp_script.exec), который будет использоваться для запуска команд GrADS. Скрипт выглядит следующим образом:
'reinit'
'open temp_ctl.ctl'
'set lon -100 -80'
'set lat 20 30'
'define prc = var'
'set sdfwrite data_out.nc'
'sdfwrite prc'
Скрипт вызывается через cshell:
#!/bin/csh -f
grads -lbc << EOF
temp_script.exec
EOF
exit
Сценарий выполняется правильно, но вывод (data_out.nc) не создается. Как ни странно, если я редактирую его с помощью VI и заменяю первый символ — одинарную кавычку перед командой «reinit» — на другую одинарную кавычку, а затем повторно запускаю скрипт, данные генерируются правильно.
У меня вопрос, что может быть иначе? Скрипты выглядят одинаково в нескольких разных текстовых редакторах, но "модифицированный" скрипт (напечатанный) на 1 байт больше. Я использую функцию «fprintf» для создания одинарных кавычек в Matlab. Может проблема в этой функции?
Спасибо за чтение.