Matlab system command doesn't work properly on linux platform

When execute system('hostname -s') -command in matlab, process go to linux command line and in linux command line making exit command, process will go back to matlab command line with hostname.
Example run:
>> system('hostname -s')
[j...al@oulng208 users3/j...al]$exit
exit
oulng208
ans =
0
>>
Why matlab goes to linux command line? It should stay in matlab.

2 件のコメント

Rik
Rik 2020 年 5 月 22 日
What do you mean? The purpose of the system function is to call the OS command line.
Janne Karjalainen
Janne Karjalainen 2020 年 5 月 22 日
Yes, purpose is to get hostname from OS in matlab, somehow matlab is directing to linux command line.

サインインしてコメントする。

回答 (2 件)

Rik
Rik 2020 年 5 月 22 日

0 投票

If you want to capture the output to a Matlab variable, you should use the second output:
[status,response]=system('hostname -s');
I don't have Matlab installed on my Ubuntu VM, but this works in Octave, so it should do the trick.
Walter Roberson
Walter Roberson 2020 年 5 月 22 日

0 投票

https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
You have a BASH_ENV or equivalent for your shell, that is triggering interactive execution for the non-interactive case.
Hypothetically there could also be issues if you have SHELL environment variable set to include flags that should not be set for non-interactive work.

1 件のコメント

Janne Karjalainen
Janne Karjalainen 2020 年 5 月 22 日
Issue was caused by shell environment change. Originally shell is tcsh and before staring matlab it is changed to bash. I fixed to tsch and now system commands are working in matlab. Thanks for comments!

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeStartup and Shutdown についてさらに検索

製品

リリース

R2017b

質問済み:

2020 年 5 月 22 日

コメント済み:

2020 年 5 月 22 日

Community Treasure Hunt

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

Start Hunting!

Translated by