2015-09-09 21 views
5

komut satırı argümanlarını nasıl geçirebilirim Seçenek uygulamalı kütüphaneyi kullanarak bir komut satırı argüman ayrıştırıcısı kullanan bir Haskell programı yapıyorum. Ben oluşturmak ve benim projeyi test etmek yığını kullanıyorum beri,exec exec

stack exec myprogram-exe -i myfile.txt 

ama yürütmeye çalıştığınızda, Yığın bana şu mesajı verir gibi, yığın exec komut satırı argümanları geçen programımı çalıştırmak istiyorum:

Usage: stack exec CMD [-- ARGS (e.g. stack ghc -- X.hs -o x)] ([--plain] | 
       ([--ghc-package-path] | [--no-ghc-package-path]) 
       ([--stack-exe] | [--no-stack-exe]) [--package ARG]) 

Ben yığını kullanarak yürütülen bir programa komut satırı argümanları geçebildiği bir yolu var mı?

+1

deneyin bu 'yığın exec - myprogram-exe -i myfile.txt' ? – Sibi

+0

@sibi doğru yaklaşım budur. Cevap olarak yazabilir misin? '$ (foo olan exec exec)' Unix kabuklarında da çalışırdı –

cevap

7

Böyle bir şey çalışması gerekir:

stack exec -- myprogram-exe -i myfile.txt 

başka bir yolu da Michael Snoyman böyle olmalı dediği gibi:

$(stack exec which foo)