2011-07-04 11 views
5

Piszę skrypt q, który ładuje db w określonej ścieżce i wykonuje na niej pewne przetwarzanie. Lokalizacja bazy danych jest aktualnie zakodowana w skrypcie, ale chcę przekazać ścieżkę db jako argument i pobrać ją ze ścieżki w zmiennej.Przekazywanie ścieżki db do l lub .Q.l przy użyciu zmiennej

Obecnie wygląda to tak:

Pomyślałem, że .Ql powinno dać nam to zrobić przy użyciu zmiennej, więc próbowałem przy użyciu następujących w skrypcie,

dbPath:`$.z.x 0 
.Q.l hsym dbPath   #Fails 

Kiedy z argumentem/path/do/dbDir, skrypt zawsze kończy się niepowodzeniem z pewnymi nieczytelnymi rzeczami i:

':/path/to/dbDir: No such file or directory 

Czy ktoś mógłby pomóc?

Odpowiedz

4

.Q.l jest synonimem \l który trwa tylko jeden argument, który nie jest hsym ale plik lub katalog Nazwa.

Nawiasem mówiąc nieczytelny rzeczy była definicja funkcji, a następnie błąd typu (gdyż nie oczekiwał hsym)

3

Ok, wydaje się działać, gdy staramy .Ql bez hsym jak ten:

dbPath:`$.z.x 0 
.Q.l dbPath 
4

\x ... zawsze jest równoznaczne z system"x ...", która jest ogólnie rozwiązanie „Jak mam przejść zmienna na pytanie poleceń \

w Twoim przypadku, chcesz

system"l ",.z.x 0 

(btw, nie sądzę .Q.l jest zaangażowany w \l kodu, tylko danych, więc nie próbuj używać go do ładowania dodatkowych plików .q).

Powiązane problemy