从Matlab和终端运行时,bash脚本的执行不同
我有一个bash脚本,我想在Ubuntu 14.04的Matlab2014b中执行它。当我从终端启动它时(我从操作系统启动),一切都正常。我试着像这样从Matlab启动它从Matlab和终端运行时,bash脚本的执行不同,matlab,ubuntu,Matlab,Ubuntu,我有一个bash脚本,我想在Ubuntu 14.04的Matlab2014b中执行它。当我从终端启动它时(我从操作系统启动),一切都正常。我试着像这样从Matlab启动它 !./script.sh 它执行,但无法打开必须加载的图像文件。 如果我从Matlab启动terminal window,情况会更糟 !./gnome-terminal 然后用它来启动脚本我遇到了同样的“未找到文件”问题。可以毫无问题地访问文本文件。图像的路径是全局的。要加载图像,请使用opencv库。我的猜测是,由于某种
!./script.sh
它执行,但无法打开必须加载的图像文件。
如果我从Matlab启动terminal window,情况会更糟
!./gnome-terminal
然后用它来启动脚本我遇到了同样的“未找到文件”问题。可以毫无问题地访问文本文件。图像的路径是全局的。要加载图像,请使用opencv库。我的猜测是,由于某种原因,opencv的工作原理与Matlab不同,但我不知道该怎么做
我花了很多时间来解决这个问题,但仍然无法解决它。我将非常感谢您的建议和帮助。LD_LIBRARY_Matlab shell的路径与teminal shell的路径不同。Matlab中的以下命令:
setenv('LD_LIBRARY_PATH', <content of LD_LIBRARY_PATH from terminal>)
MatlabShell的LD_库_路径与teminal shell的不同。Matlab中的以下命令:
setenv('LD_LIBRARY_PATH', <content of LD_LIBRARY_PATH from terminal>)
您是否对图像文件使用绝对路径?可能您在错误的目录中Matlab外壳不一定与您的终端外壳相同。检查以确保
.profile
或.bashrc
中的所有必需选项均未丢失。例如路径或别名。谢谢你,马特!我无法通过查看.profile和.bashrc来找出问题所在,但我比较了两个终端(Matlab和Ubuntu)的环境变量,发现它们有很大不同。我设置了环境(“LD_LIBRARY_PATH”);现在它工作了!您是否对图像文件使用绝对路径?可能您在错误的目录中Matlab外壳不一定与您的终端外壳相同。检查以确保.profile
或.bashrc
中的所有必需选项均未丢失。例如路径或别名。谢谢你,马特!我无法通过查看.profile和.bashrc来找出问题所在,但我比较了两个终端(Matlab和Ubuntu)的环境变量,发现它们有很大不同。我设置了环境(“LD_LIBRARY_PATH”);现在它工作了!