Linux 如何通过shell脚本运行代码?

Linux 如何通过shell脚本运行代码?,linux,matlab,shell,Linux,Matlab,Shell,我想通过linux shell脚本运行MATLAB代码 所以我试过了 #! /usr/bin/tcsh setenv USER mcevoyd setenv LOGNAME mcevoyd setenv HOME /home/mcevoyd setenv PATH /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin setenv LANG en_US.UTF-8 matlab -nodisplay -nodesk

我想通过linux shell脚本运行MATLAB代码

所以我试过了

#! /usr/bin/tcsh

setenv USER mcevoyd 
setenv LOGNAME mcevoyd 
setenv HOME /home/mcevoyd 
setenv PATH /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin 
setenv LANG en_US.UTF-8

matlab -nodisplay -nodesktop -r "scriptFile.m" 
但它不起作用


我将上面的shell脚本保存为
shell.sh
,并使用
chmod 755 shell.sh

matlab
调用更改为:

matlab -nodisplay -nodesktop -r scriptFile
-r
标志后面的语句是文件名时,不要包含
.m
扩展名或引号(
“”

请注意,这将启动MATLAB并运行文件
scriptFile.m
,就像打开MATLAB一样,然后在命令提示下键入
scriptFile
。在退出之前,您将一直处于MATLAB环境中

若要在MATLAB环境之外运行MATLAB脚本,则需要使用编译

p.s.
从您的帖子中,我假设您更改了脚本文件的权限,使其可以通过调用
chmod 755 shell.sh
执行,但您实际运行的脚本带有符号:
/shell.sh
。否则,这可能是您的脚本根本无法运行的早期原因,而不是启动但无法按您的意愿运行。

欢迎使用SO!对于未来-请确保您的问题在您的问题中明确说明,并且不要求其他人运行您的代码来查看问题所在。你说的“没用”是什么意思?这是否给出了一个错误?这没有任何作用吗?非常重要的澄清:您的字面意思是“…使用
chmod 755 shell.sh在终端上运行”
?因为这肯定不会运行您的脚本。@information。请不要随意触摸张贴的代码。您在回答中提到了命名问题是一件好事,但请不要更改OP问题中的实际代码。在某些情况下,它可能会使整个问题无效。您是否尝试过使用
/shell.sh
运行它?当然,在调用
chmod
之后。@informaton。我只是指修改变量名。我甚至没有注意到散列,这在我的书中是一个非常合理的更正。我将您的原始文件名从
code.m
更改为
scriptFile.m
,以防止有人看到
-r code
时产生混淆,并认为
code
是MATLAB语句的缩写;这也是允许的,只要它们在引号中。不确定这是OP的实际问题,但还是很好的答案。@MadPhysician谢谢。我在上面看到了您关于
chmod 777 shell.sh
的文字解释,并为这种情况添加了附言。