【发布时间】:2014-10-31 23:01:39
【问题描述】:
我目前正在编写一个脚本,我必须从终端调用 MATLAB 并向其传递一个包含糟糕字符的路径参数。
正如预期的那样,当路径包含空格/括号时,我遇到了麻烦。以下是说明问题的最小示例:
matlabcmd="/Applications/MATLAB_R2014b.app/bin/matlab -nodesktop -nosplash" run_dir="Users/Me/My Directory With Spaces (and括号)/" $matlabcmd -r "addpath('${run_dir}'),exit"
我尝试过的一些事情:
上述命令中双引号和单引号的不同组合(这通常在调用 MATLAB 时失败)。
使用转义字符使
run_dir="Users/Me/My Directory\ With\ Spaces\ \(and parentheses\)/"(这设法调用了 MATLAB,但随后 MATLAB 被空格弄糊涂了......并且addpath不起作用)。
还有希望吗?
【问题讨论】:
-
不要尝试使用字符串来执行命令。它总是以痛苦告终。见mywiki.wooledge.org/BashFAQ/050
-
使用“Users/Me/MyDire~1/”之类的DOS路径会有所帮助,例如stackoverflow.com/questions/4051088/…