Я работаю со следующим сценарием run_test:
#!/bin/sh
temp=$1;
cat <<EOF | matlab
[status name] = unix('echo $temp');
disp(name);
% some Matlab code
test_complete = 1;
save(name)
exit
EOF
Я хочу передать имя сценарию, выполнить некоторый код и сохранить файл .mat с именем, которое было передано.Тем не менее, есть любопытная часть поведения:
[energon2] ~ $ ./run_test 'run1'
Warning: No display specified. You will not be able to display graphics on the screen.
< M A T L A B (R) >
Copyright 1984-2010 The MathWorks, Inc.
Version 7.12.0.635 (R2011a) 64-bit (glnxa64)
March 18, 2011
To get started, type one of these: helpwin, helpdesk, or demo.
For product information, visit www.mathworks.com.
>> >> >> >> run1
>> >> >> >> >>
[energon2] ~ $ ls *.mat
run1?.mat
Есть "?"в конце имени файла при его сохранении, но не при отображении в командной строке.Это приемлемо для моих нужд, но немного раздражает, когда я не знаю, почему это происходит.Любое объяснение будет приветствоваться.
Правка, решение: Юк был прав в приведенной ниже причине и использовании сохранения ('$ temp').Я сейчас использую следующий скрипт
#!/bin/sh
temp=$1;
cat <<EOF | matlab
% some Matlab code
test_complete = 1;
save('$temp')
exit
EOF
Спасибо за помощь.