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,

 Akzeptierte Antwort

tafteh
tafteh am 21 Aug. 2018
Bearbeitet: tafteh am 21 Aug. 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)

Weitere Antworten (1)

Fangjun Jiang
Fangjun Jiang am 20 Aug. 2018
Bearbeitet: Fangjun Jiang am 21 Aug. 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 Kommentare

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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Startup and Shutdown finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 20 Aug. 2018

Bearbeitet:

am 21 Aug. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by