matlabスクリプトを自動的にロードするbash関数の作成

matlabスクリプトを自動的にロードするbash関数の作成

コマンドラインに渡されたすべてのmatlabスクリプトをロードする便利な関数を作成したいと思います。構文は次のとおりです。

fmatlab myscript1.m myscript2.m ... mystriptN.m

私は何かを簡単にすることができます基本スクリプトの数。たとえば、スクリプトを提供すると、次のようになります。

function fmatlab () { 
         $MYMATLABPATH/matlab -r "edit "$1"" &
}

または両方のスクリプトの場合:

function fmatlab () { 
         $MYMATLABPATH/matlab -r "edit "$1" "$2"" &
}

など。最初はmatlabを開き、エディタで単一のスクリプトを渡し、2番目はmatlabを開き、2つのスクリプトを渡します。どちらの場合も確認されます。

ただし、可変数のスクリプトを実行することはできません。たとえば、明らかに見える拡張子は次のとおりです。

function fmatlab () { 
         $MYMATLABPATH/matlab -r "edit "$@"" &
}

最初のスクリプトだけが開き、他のスクリプトは開かれません。最初の引用符セットのコマンドが両方のスクリプトケースで同じであることを確認しました。

function fmatlab_echo () { 
         echo "edit "$1" "$2"" 
         echo "edit "$@""
}

私は得る

$ fmatlab_echo script1.m script2.m
edit script1.m script2.m
edit script1.m script2.m

$ @、&(ターミナルの次の行に移動)、matlab -r、または3つの組み合わせの基本的な内容が欠落している可能性があります。

ベストアンサー1

あなたが望むようです:

fmatlab () { 
    $MYMATLABPATH/matlab -r "edit $*" &
}

二重引用符で囲むと、$*すべての引数を空白で連結します(デフォルトでは)。

おすすめ記事