MATLAB Answers

list of csh commands to be run from matlab script

7 views (last 30 days)
Aksh Chordia
Aksh Chordia on 19 Nov 2020
Commented: Bjorn Gustavsson on 23 Nov 2020
I need to run a list of csh commands on the unix terminal from a matlab script.
Whenever I try to use the system() function, it gets into a infinite loop in the script (the control goes to the terminal in MATLAB.
Until I type the exit command in MATLAB terminal, the control does not go back to the script execution.
As the first line is csh, the rest of the line becomes useless.
I am not able to understand how to achieve this.
The list of commands are as follows:
csh
source /home/install/cshrc
setenv ...
setenv ...
{ some software specifc commands}
Thanks in advance
Aksh

  3 Comments

Rik
Rik on 19 Nov 2020
You should only use the system command if you are certain the code can run without interaction.
Aksh Chordia
Aksh Chordia on 19 Nov 2020
Is there any alternate way to execute a list of csh commands without using the system function from the matlab script?

Sign in to comment.

Answers (1)

Bjorn Gustavsson
Bjorn Gustavsson on 19 Nov 2020
You might accidentally start a c-shell with your first csh command. My suggestion is that you put all csh-commands into a csh-script, and run that instead of uising matlab to making the list of commands to run. That seems cleaner. If you need to dynamically generate the commands, you should be able to save those to a csh-script (use system to set its permissions to executable) and run that script with system. This seems like a "cleaner" solution than yours, hopefully it works?
HTH

  2 Comments

Aksh Chordia
Aksh Chordia on 22 Nov 2020
Thanks for your insight.
But I also want to pass the arguments to the now-interactive command terminal of MATLAB (a software is running on it, which has an interactive command line feature).
I need to run this software through the script (matlab file) by giving it commands in real time which are placed on the script (matlab file ) itself.
Basically, I need to run a software on the MATLAB command prompt and give it commands based on computation and the results it gives. The issue with using "system" function is that, it does not gives back the control to the script until the system function is completely executed (in my case, when the software exits)
Again thank you for the resourceful wiki
Looking forward to hearing back soon.
Thank you
Aksh
Bjorn Gustavsson
Bjorn Gustavsson on 23 Nov 2020
Do I interpret your objective correctly: You want to start a programme/csh-script from matlab use the output of that programme to do some further processing and controll the running of the programme/csh-script from the results of that processing?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!