将包含空格和括号的路径从terminal/bash传递到MATLAB
我目前正在编写一个脚本,我必须从终端调用MATLAB,并向它传递一个包含糟糕字符的路径参数 正如所料,当路径包含空格/括号时,我遇到了麻烦。下面是一个简单的例子来说明这个问题: matlabcmd=/Applications/MATLAB_R2014b.app/bin/MATLAB-nodesktop -nosplash run_dir=Users/Me/My目录,带空格和括号/$matlabcmd-r addpath'${run_dir}',退出 我尝试过的一些事情: 上述命令中双引号和单引号的不同组合通常无法调用MATLAB 使用转义字符,使run_dir=Users/Me/My Directory\带有\Spaces\\and圆括号\/这可以调用MATLAB,但是MATLAB会被空格搞糊涂。。。而addpath不起作用 有希望吗?试试看 matlabcmd=/Applications/MATLAB_R2014b.app/bin/MATLAB-nodesktop -nosplash run_dir=Users/Me/My Directory(带空格和括号)/$matlabcmd-r addpathgetenv'run_dir',退出将包含空格和括号的路径从terminal/bash传递到MATLAB,bash,matlab,Bash,Matlab,我目前正在编写一个脚本,我必须从终端调用MATLAB,并向它传递一个包含糟糕字符的路径参数 正如所料,当路径包含空格/括号时,我遇到了麻烦。下面是一个简单的例子来说明这个问题: matlabcmd=/Applications/MATLAB_R2014b.app/bin/MATLAB-nodesktop -nosplash run_dir=Users/Me/My目录,带空格和括号/$matlabcmd-r addpath'${run_dir}',退出 我尝试过的一些事情: 上述命令中双引号和单引号
这将防止引用/转义噩梦,并将产生预期效果。不要尝试使用字符串来执行命令。它总是以痛苦告终。请看,使用Users/Me/MyDire~1/这样的DOS路径可能会有所帮助。