명령줄에 전달된 모든 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 $*" &
}
큰따옴표 안에 사용 하면 $*
모든 인수를 공백으로 연결합니다(기본적으로).