script language就像灵活的瑞士军刀,但进行某些专业处理会力不从心。譬如复杂的数**算、建模、复杂的文本处理会等等。没关系,专业的人做专业的事,同样,专业的工具干专业的活,我们可以借助外部工具帮忙,譬如matlab、C/C++,vim等等,下面以Matlab为例,简单描述一下如何用shell脚本产生m程序,并用matlab工具来运行它。
程序的产生
菜鸟级:用echo,将每一句话都给echo进目标程序;
骨灰级:here document+重定向;举例如下
cat test.sh
--------------------------------------------------------
#!bin/bash
FileName=mat_prog.m
cat > $FileName <<EOF
%This is a matlab script
rn=round(random('normal',256,512,1000000,1));
rn(find(rn<64))=[];
rn(find(rn>1024))=[];
x=unique(rn);
hist(rn,x);
fid=fopen(`myfile.txt`,'w');
fprintf(fid,'%d\n',rn);
fclose(fid);
EOF
程序的运行
chmod +x $FileName
matlab -nodesktop -nosplash -nojvm -r "run ./$FileName;quit;" |