matlablinux脚本,linux下运⾏matlab脚本⽅法
linux重定向⼀般运⾏⽅法:
matlab -nodesktop nosplash -r 'cd /home/teng/data;hellowrld;'
后台运⾏⽅法:
nohup matlab -nosplash -nodesktop -r 'cd /home/teng/data;helloworld;quit;' >/dev/null 2>&1 &
-r为matlab命令,后⾯不可以直接跟脚本,‘ ’内容为在matlab中实际运⾏的命令,且不能加.m后缀。
cd 为根据脚本⽂件位置来切换matlab⼯作区的搜索路径;
nohup ……&为⼀程序组合,使程序后台运⾏,⽽不⽤使客户端进⼊到matlab命令⾏中;
quit为执⾏完命令直接
我们还可以通过修改.bashrc⽂件来把常⽤命令简化缩短:
$ vim ~/.bashrc
添加如下:
# Add an "mrun" alias for running matlab in the terminal.
alias mrun="matlab -nodesktop -nosplash -logfile `date +%Y_%m_%d-%H_%M_%S`.log -r"
保存后,进⼊.m⽂件所在⽬录,运⾏
$ mrun matlabfile
如果使⽤ -nodisplay -r 选项运⾏,当程序中有figure()命令时会出错,可以使⽤如下选项抑制图形的显⽰:
figure('visible','off');
并使⽤如下命令将图形输出到⽂件:
print('-deps','example.eps');
或者
hgsave('example.fig');
>/dev/null 2>&1 ⼀般在shell包括dos下都可能会这样使⽤。
null是⼀个名叫null⼩桶的东西,将输出重定向到它的好处是不会因为输出的内容过多⽽导致⽂件⼤⼩不断的增加。其实,你就认为null就是什么都没有,也就是,将命令的输出扔弃掉了。
1表⽰标准输出,2表⽰标准错误输出,2>&1表⽰将标准错误输出重定向到标准输出,这样,程序或者命令的正常输出和错误输出就可以在标准输出输出。
⼀般来讲标准输出和标准错误输出都是屏幕,那为什么还要这么⽤呢?原因是标准输出的重定向。你的例⼦是重定向到了null,如果重定向到⽂件,例如:
dir >
表⽰标准输出重定向到⽂件。此时如果dir命令出错,那么错误信息不会输出到⽂件,错误信息仍然会输出到屏幕——标准错误输出。为了使正确的信息和错误的信息都重定向到⽂件,那么需要将错误信息的标准错误输出重定向到标准输出。即命令如下:
dir > 2>&1
重定向到null是⼀个道理。
dir > null 2>&1
0:表⽰键盘输⼊(stdin)
1:表⽰标准输出(stdout),系统默认是1
2:表⽰错误输出(stderr)
command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 &
1)command:表⽰shell命令或者为⼀个可执⾏程序
2)>:表⽰重定向到哪⾥
3)/dev/null:表⽰Linux的空设备⽂件
4)2:表⽰标准错误输出
5)&1:&表⽰等同于的意思,2>&1,表⽰2的输出重定向等于于1
6)&:表⽰后台执⾏,即这条指令执⾏在后台运⾏
1>/dev/null:表⽰标准输出重定向到空设备⽂件,也就是不输出任何信息到终端,不显⽰任何信息。
2>&1:表⽰标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备⽂件,所以标准错误输出也重定向到空设备⽂件。这条命令的意思就是在后台执⾏这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null⽂件,也就是清空.
所以可以看出" >/dev/null 2>&1 "常⽤来避免shell命令或者程序等运⾏中有内容输出
使⽤man bash命令查看到的联机帮助⽂件中的相关解释如下:.bashrc - The individual per-interactive-shell startup file.这个⽂件主要保存个⼈的⼀些个性化设置,如命令别名、路径等。下⾯是个例⼦: # User specific aliases and functions
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" LANG=zh_CN.GBK export PATH LANG alias rm='rm -i' alias ls='/bin/ls -F --color=tty --show-control-chars'例⼦中定义了路径,语⾔,命令别名(使⽤rm删除命令时总是加上-i参数需要⽤户确认,使⽤ls命令列出⽂件列表时加上颜⾊显⽰)。每次修改.bashrc后,使⽤source ~/.bashrc(或者 . ~/.bashrc)就可以⽴刻加载修改后的设置,使之⽣效。⼀般会在.bash_profile⽂件中显式调⽤.bashrc。登陆linux启动bash时⾸先会去读取~/.bash_profile⽂件,这样
~/.bashrc也就得到执⾏了,你的个性化设置也就⽣效了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论