Can I call a bash shell script (using cygwin) through matlab?
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I want to call a bash shell script glider_merge.sh from glider_boat_check.m. I need to pass arguments such as location, unit, and year. Do I have to define these in the shell script or can I pass them through matlab?
The glider_merge.sh script merges science and flight data into a .dat file and .mat file. I want to just be able to open glider_boat_check.m, press run which executes glider_merge.sh and then glider_boat_check.m opens the .mat output file and does more diagnostics.
I am (brand) new to UNIX and haven't had much experience with matlab either. Any suggestions would help greatly.
0 comentarios
Respuestas (1)
Titus Edelhofer
el 1 de Jun. de 2015
Hi,
you can use the system function to call your shell script. Something like
location = 'Germany';
system(['yourshellscript.sh ' location]);
This way you pass location as parameter to the shell script.
Titus
4 comentarios
Titus Edelhofer
el 3 de Jun. de 2015
And use num2str(year), if year is a number (double) and not a string ...
Chris Endemann
el 31 de En. de 2019
Editada: Chris Endemann
el 31 de En. de 2019
I was just working from this solution, and found that the final answer is slightly incorrect. The final double quote should come after the input argument list, i.e.:
str = ['C:\cygwin64\bin\bash --login -c "C:/cygwin64/home/bkirving/gliders/ProcArchive/glider_merge.sh ' location ' ' unit ' ' year '"'];
system(str)
Ver también
Categorías
Más información sobre Data Type Identification en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!