¿Es posible escribir scripts de shell en Haskell y, de ser así, cómo lo hace? ¿Simplemente cambiando el intérprete como tal?¿Se puede usar Haskell para escribir scripts de shell?
#!/bin/ghci
¿Es posible escribir scripts de shell en Haskell y, de ser así, cómo lo hace? ¿Simplemente cambiando el intérprete como tal?¿Se puede usar Haskell para escribir scripts de shell?
#!/bin/ghci
Usando ghci
se acaba de cargar el módulo en GHCi. Para ejecutarlo como una secuencia de comandos, utilice runhaskell
o runghc
:
#!/usr/bin/env runhaskell
main = putStrLn "Hello World!"
Debería funcionar si cambia el intérprete para esto:
#!/usr/bin/runhaskell
En lugar de hardcoding, en general, es mejor usar '#!/usr/bin/env runhaskell' de la misma manera que sugiere @Hammar para que' runhaskell' se pueda encontrar en cualquier lugar en su camino en lugar de solo en '/ usr/bin'. Muchas personas no instalan Haskell a nivel del sistema, por lo que no puede confiar en que siempre lo encuentre en esa ubicación. – aculich
Bueno comprobar esta presentación: Practical Haskell: scripting with types
Otra manera de escribir scripts de shell mediante Haskell es para generar los scripts, como con bashkell. Esto es útil si desea ejecutar en sistemas que no tienen Haskell instalado.
A partir de octubre de 2016, hay una mejor respuesta a esta pregunta: use The Haskell Tool Stack script interpreter. Los scripts de Haskell basados en stack
son portátiles porque descargan (y almacenan en caché) la versión correcta de ghc
y todas sus dependencias de paquetes.
#!/usr/bin/env stack
-- stack --resolver lts-3.2 --install-ghc runghc
main = putStrLn "Hello World!"
Véase también el tutorial How to Script with Stack.
Probablemente '#!/Usr/bin/gchci' o' #!/Usr/bin/env ghci' - pero entonces es un script de Haskell, no uno de shell. –
Mire esta pregunta. Debería darte mucha información. '¿Clojure o Haskell son mejores para hacer herramientas de línea de comando?' http://stackoverflow.com/questions/4997003 –