Linux 如何通过shell脚本运行代码?
我想通过linux shell脚本运行MATLAB代码 所以我试过了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
#! /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
的文字解释,并为这种情况添加了附言。