Search code examples
matlaboctaveexecutable

Run script file from other script file in Octave


I have several Octave script files that run tests, named test_1, test_2, etc. I want to have a script file that will run all the tests, without having to switch all the test_n files to function files. I've tried several variations on this:

#!/path/to/octave -q
addpath('/path/to/directory/containing/all/scripts/');

source(test_1.m);

source(test_2.m);

but I always get "error: invalid call to script /path/to/directory/containing/all/scripts/test_1.m".

(I've tried source_file(), run(), and just having the filename alone on the line.)

Is there any way to run script files from a script file in Octave?


Solution

  • Try

    source test_1.m
    

    or

    source('test_1.m')
    

    instead.

    Your syntax implies test_1 is a struct variable and you're trying to access a field called m

    Same with the run command (in fact, run simply calls source under the hood).

    You can also call the script directly, if it's on the path. You just have to make sure you don't include the .m extension, i.e.

    test_1
    test_2