を、持ってい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
"?"ファイル名の最後に保存されますが、コマンドラインでは表示されません。これは私のニーズには受け入れられますが、なぜそれが起こっているのかわからないために少し刺激的です。どんな説明もありがたいです。
編集:解決策: Yukは根本的な原因とsave( '$ temp')の使用では以下のとおりです。私は今、次のスクリプトを使用しています
#!/bin/sh
temp=$1;
cat <<EOF | matlab
% some Matlab code
test_complete = 1;
save('$temp')
exit
EOF
ありがとうございました。
getenv( 'temp')と同じ結果が得られますか? – macduff
getenv( 'temp')は空の文字列を返します。 – Sevenless