jojko999 [ Generaďż˝ ]
Skrypty bash pomocy!! bo jestem zielony
Witam.
mam dostęp do serwera obliczeniowego i muszę zastosować pewien skrypt.
Mam taki problem:
Piszę skrypt dla basha (chyba tak to można ująć) od komendy #!/bin/bash
potem następują komendy
potem uruchamiam odpowiedni program komendą matlab (czyli uruchamiam matlaba)
a potem chcę, żeby pod matlabem uruchomić skrypt o nazwie 'start40.m'
Jeżeli wpiszę tak:
matlab
./start40.m
to uruchamia się program matlab, ale plik 'start40.m' jest interpretowany przez basha nie przez matlaba i pojawiają się błędy w stylu 'line 1 error; command not known' itd. do końca skryptu
jak uruchomić matlaba z poziomu basha wraz z parametrem, umożliwiającym uruchomienie skryptu start40.m?
Regis [ ]
Strzelam:
matlab ./start40.m
jojko999 [ Generaďż˝ ]
strzał chybiony: niczym to się nie różni w interpretacji kodu
edit:spróbowałem tak:
$matlab start40.m
zobaczymy czy zadziała, ale ze względu na kolejkę w przetwarzaniu muszę poczekać
edit2:no i du...a nie zdefiniowana jest funkcja po $, czyli nie działa: command not found
jakieś pomysły?
wysiak [ Legend ]
Nie mam pojecia jakie ten matlab przyjmuje parametry, zapewne poda spis po zapytaniu go - jakis parametr typu -h, -?. Powinna tam byc flaga, ktora powie mu, ze nastepna jest nazwa pliku do zaladowania. Jesli bedzie to np -f, to linia w skrypcie bedzie wygladala
matlab -f start40.m
tudziez
./matlab -f start40.m
Dolar oznacza zmienna, czyli mozesz sobie na poczatku pliku zadeklarowac np
$PLIK_DO_URUCHOMIENIA=start40.m
i pozniej uzyc
matlab -f $PLIK_DO_URUCHOMIENIA
albo zrobic
matlab -f $1
i uruchamiac swoj skrypt w taki sposob:
./skrypt_jojka start40.m
Pierwszy podany parametr wejsciowy jest widziany jako $1, drugi $2, itd.
Przypominam, ze to -f to sobie wymyslilem - co tam powinno byc, to musisz sam sprawdzic. Ewentualnie sprawdz
matlab start40.m
A nuz tak to zrobili..
Aaa, sprobuj odpalic
man matlab
, powinno pokazac parametry uruchomieniowe.
jojko999 [ Generaďż˝ ]
wysiak dzięki popróbuje
doczytałem w dokumentacji matlaba, że mogę go uruchomić z opcją -r (zamiast twojego wymyślonego -f, które ma z zasady uruchomić komendę startową) i wysłałem
matlab -r start40 (matlab interpretuje pliki *.m bez rozszerzeń) teraz czekam w kolejce co z tego wyniknie.
Jeżeli nie zadziała to doczytałem, że malab po starcie przeszukuje katalog roboczy więc spróbuję jeszcze opcję:
matlab -start40 jakby nie zadziałała poprzednia opcja
ale i tak dzięki za poradę bo rozjaśniło mi to trochę działanie skryptów
jojko999 [ Generaďż˝ ]
dzięki zadziałało z -r :-)