Linux で "system" または "bang" ("!") コマンドを使用すると、"127" の出力が返されます。

5 Ansichten (letzte 30 Tage)
MathWorks Support Team
MathWorks Support Team am 13 Apr. 2021
Linux Ubuntu 14.04 で "system" または "bang"("!")コマンドを実行すると "127" の出力が表示されます。
"system" に入力したコマンドに関係なく起こります。たとえば、"pwd" を使用すると、次のようになります。
>> [status, cmdout] = system('pwd')
status = 127
cmdout = 0x0 empty char array
>> !pwd
ans = 127
MATLAB コマンド ウィンドウで、次のコマンドを実行した場合は現在の作業ディレクトリが出力されます。
>> pwd
Linux ターミナルでは、次のコマンドで現在の作業ディレクトリを出力します。
$ pwd

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 13 Apr. 2021
「127」は、コマンドが見つからなかったことを示す Linux 端末出口フラグであるようです。MATLAB と Linux シェルの間に 'PATH'または 'SHELL' 変数の問題がある可能性があります。
次の回避策をお試しください:
1. Linux 環境パスへの MATLAB パスを設定するために、次の手順を実行てから "system" コマンドを試してください。
>> PATH = getenv('PATH');
>> setenv('PATH', [PATH ':/usr/local/desiredpathtoexe']);
>> [status, cmdout] = system('pwd')
2.上記の方法で問題が解決しない場合は、「SHELL」変数に問題がある可能性があります。まず、システムのデフォルトシェルと、ターミナルで現在使用されているシェルを確認します。
a. 既定の startup シェルを探します。
$ echo $SHELL
b. ターミナルで現在使われているシェルを探します。
$ echo $0
$ ps -p $$
c. そのシェルの実行ファイルの場所を探します。例えば、Bashの場合、以下のようにすると「/bin/bash」と出力されます。
$ which bash
3.MATLAB が使用しているシェルを探します。
>> sh = getenv('SHELL')
ターミナルで使用しているシェルと異なる場合は、「setenv」を使って希望するシェルの場所に設定します。Bash の場合は以下のとおりです。
>> setenv('SHELL','/bin/bash')
4. それでも問題が解決しない場合は、環境変数$SHELLに希望の値が設定されていることを確認してからMATLAB を開きます。Bash の場合は以下のとおりです。
$ export $SHELL=/bin/bash 
5. それでも問題が解決せず、システムの既定のシェルと現在のターミナルシェルが異なる場合は、以下のコマンドでシステムの既定のシェルを目的のシェルに変更できます。Bashの場合は以下のとおりです。
$ chsh -s /bin/bash your_username
この場合、変更が適用されるようにログアウトとログインが必要です。
6. それでも問題が解決しない場合は、.bashrcファイルやその他のシェル起動ファイルに問題がないか確認します。

Weitere Antworten (0)

Kategorien

Mehr zu 起動と終了 finden Sie in Help Center und File Exchange

Produkte


Version

R2016b

Community Treasure Hunt

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

Start Hunting!