質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1522閲覧

shell scriptからmatlabスクリプトの実行

tachi-as

総合スコア8

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2018/08/23 06:08

前提・実現したいこと

shell scriptからmatlabのスクリプトを起動するプログラムを作っています。
下記のコードでpythonコードの実行まではうまくいき,最後の行の"${CMD[@]}"でエラーが発生しています.

発生している問題・エラーメッセージ

./decode.sh: line 37: matlab: コマンドが見つかりません

該当のソースコード

#usr/bin/sh run_preprocessing(){ subj_id=$2 echo "python ./python/write_preprocessBatch.py ${subj_id}" python ./python/write_preprocessBatch.py ${subj_id} echo "python ./python/write_executeBatch.py ${subj_id} preprocess" python ./python/write_executeBatch.py ${subj_id} preprocess cd ${batch_path} CMD=(matlab "-nodisplay -r 'executeBatch_${subj_id};exit'") "${CMD[@]}" }

試したこと

①terminalからmatlabが起動できることを確認しました.
↓↓↓↓↓↓↓↓↓↓ここから実行例
$ matlab
Warning: No display specified. You will not be able to display graphics on the screen.
Warning: No window system found. Java option 'Desktop' ignored.

< M A T L A B (R) > Copyright 1984-2013 The MathWorks, Inc. R2013a (8.1.0.604) 64-bit (glnxa64) February 15, 2013

No window system found. Java option 'Desktop' ignored.

To get started, type one of these: helpwin, helpdesk, or demo.
For product information, visit www.mathworks.com.
↑↑↑↑↑↑↑↑↑↑ここまで実行例

②terminalでcd ${batch_path}に移動して,matlab -nodisplay -r 'executeBatch_${subj_id};exit'が実行されることを確認しました.
こちらでは別のエラーが発生しているものの,matlabコマンドの実行はできているように見えます.

↓↓↓↓↓↓↓↓↓↓ここから実行例
$ matlab -nodisplay -r 'executeBatch_sub02_post;exit'

< M A T L A B (R) > Copyright 1984-2013 The MathWorks, Inc. R2013a (8.1.0.604) 64-bit (glnxa64) February 15, 2013

To get started, type one of these: helpwin, helpdesk, or demo.
For product information, visit www.mathworks.com.

Initialising batch system... done.
Warning: Load failed: '001_preprocess_sub02_post.m'

In spm_jobman>load_jobs at 331

In spm_jobman at 143
In executeBatch_sub02_post at 6
Warning: No batch job found in '001_preprocess_sub02_post.m'

In spm_jobman>load_jobs at 343

In spm_jobman at 143
In executeBatch_sub02_post at 6
Error using spm_jobman (line 246)
No valid job.

Error in executeBatch_sub02_post (line 6)
spm_jobman('run', '001_preprocess_sub02_post.m', 'c')
↑↑↑↑↑↑↑↑↑↑ここまで実行例

補足情報(FW/ツールのバージョンなど)

MacOSからsshでCeotOSの計算機サーバにアクセスし,そこから実行しようとしています.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2018/08/23 08:35

terminalからというのは、ssh経由でterminalから手動で実行すると動作するが、手動部分をシェルスクリプトにするとエラーが出るという意味でしょうか?
tachi-as

2018/08/23 08:58

はい.その通りです.
guest

回答1

0

ベストアンサー

./decode.sh: line 37: matlab: コマンドが見つかりません

エラーコードとmatlab自体が動作することから推察する限りは、shell内でmatlabまでのpathが通ってないだけではないでしょうか?

CMD=(matlab "-nodisplay -r 'executeBatch_${subj_id};exit'")

$ which matlab で得られたフルパスを記載してみてはいかがでしょうか?


which matlab で得られたパスが /hoge/bin/matlab だった場合に下記に変更してみる

shell

1CMD=(/hoge/bin/matlab "-nodisplay -r 'executeBatch_${subj_id};exit'")

または、下記でもできそうな気もしますが複数matlabがインストールされていたりすると意図しない動きになる可能性もあるので参考程度で記載しておきます

shell

1CMD=(`which matlab` "-nodisplay -r 'executeBatch_${subj_id};exit'")

投稿2018/08/23 12:18

kuni-n

総合スコア112

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tachi-as

2018/08/23 12:41

ご指摘のとおり編集して実行したら解決しました! 基本的なことなのかもしれませんが,非常に助かりました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問