Issue in executing command containing single quote using Plink

I am using plink.exe from cmd in Windows 10, to ssh to Ubuntu 16.04. In there, I am running MATLAB, to run the following command:
try, someFunction('path/to/files', 'algorithm'), exit(); catch ME, warning(ME.message), exit(); end
For this, I generate the following command to handle ssh, executing matlab and run the above command:
C:\plink.exe user@server -pw ****** "matlab -nodesktop -nosplash -noawt -r 'try, someFunction('path/to/files', 'algorithm'), exit(); catch ME, warning(ME.message), exit(); end'
Running the above command, I get the following error in MATLAB:
Warning: Undefined function or variable 'path/to/files'.
As it turns out, in MATLAB, the command is constructed like following:
someFunction(path/to/files, algorithm)
which is without "single quotes": thank you, plink :( .
Can you please help to generate the correct command? or if there is already a question asked with similar problem, I would be thankful to direct me to it.
Thanks,

 Respuesta aceptada

tafteh
tafteh el 21 de Ag. de 2018
Editada: tafteh el 21 de Ag. de 2018
I fixed my problem using the following solutions:
echo matlab -nodesktop -nosplash -noawt -r "try, someFunction('path/to/files', 'algorithm'), exit(); catch ME, warning(ME.message), exit(); end" | C:\plink.exe user@server -pw ****** -T
Credit goes to Martin Prikryl (https://stackoverflow.com/users/850848/martin-prikryl)

Más respuestas (1)

Fangjun Jiang
Fangjun Jiang el 20 de Ag. de 2018
Editada: Fangjun Jiang el 21 de Ag. de 2018
I would suggest putting all the commands in a M-script and then run
"fullpath\bin\matlab.exe" -r "MyScript"
Notice the double quote "
FYI, in matlab, the command is constructed like following:
someFunction('path/to/files', OtherInputArguments)
or
MyFile='path/to/files'
someFunction(MyFile, OtherInputArguments)
To create a single quote in a string, refer to the following example:
a='path/to/files'
b='''path/to/files'''

3 comentarios

Thank you, I'm afraid your solution does not work :(
See updated answer. Not sure what do you mean "does not work".
Thanks for the update. "dose not work" means that I get the same error message from MATLAB. When the following lines
a='path/to/files'
b='''path/to/files'''
are executed in MATLAB using plink.exe are still turned into
a=path/to/files
b=path/to/files
I would try putting MATLAB command in a script as you suggested.

Iniciar sesión para comentar.

Categorías

Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.

Preguntada:

el 20 de Ag. de 2018

Editada:

el 21 de Ag. de 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by