Borrar filtros
Borrar filtros

Can I call a bash shell script (using cygwin) through matlab?

12 visualizaciones (últimos 30 días)
Brita Irving
Brita Irving el 1 de Jun. de 2015
Editada: Chris Endemann el 31 de En. de 2019
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.

Respuestas (1)

Titus Edelhofer
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
Titus Edelhofer el 3 de Jun. de 2015
And use num2str(year), if year is a number (double) and not a string ...
Chris Endemann
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)

Iniciar sesión para comentar.

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!

Translated by