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을 연 다음 편집기에서 단일 스크립트를 전달하고, 두 번째는 matlab을 연 다음 두 개의 스크립트를 전달합니다. 두 경우 모두 확인됩니다.

하지만 가변 개수의 스크립트를 수행할 수는 없습니다. 예를 들어, 명백해 보이는 확장명은 다음과 같습니다.

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 또는 세 가지 조합에 대한 기본적인 내용이 누락되었을 수 있습니다.

답변1

당신이 원하는 것 같습니다 :

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

큰따옴표 안에 사용 하면 $*모든 인수를 공백으로 연결합니다(기본적으로).

관련 정보