¿Cómo podría ejecutar un comando del sistema como cp somefile somedestination
en Haskell?Ejecutando un comando del sistema en Haskell
Algo así como un os.Exec
.
¿Cómo podría ejecutar un comando del sistema como cp somefile somedestination
en Haskell?Ejecutando un comando del sistema en Haskell
Algo así como un os.Exec
.
El estándar Haskell 98 proporciona:
System.system :: String
-> IO GHC.IO.Exception.ExitCode
que ejecuta un comando.
La nueva biblioteca System.Process es más útil, lo que permite la redirección de entrada/salida portátil, y así sucesivamente.
Tenga en cuenta que si realmente desea copiar un archivo, debe usar [copyfile] (http://haskell.org/hoogle/?hoogle=%3A%3A+FilePath+-%3E + FilePath + -% 3E + IO +% 28% 29). –
@ ThomasM.DuBuisson: ¿Hay algo inseguro en llamar a 'cp', o simplemente' copyfile' es más simple? – amindfv
@amindfv Es un problema de portabilidad. ¿Cómo sabes que el comando 'cp' es correcto para tu plataforma actual? ¿Cómo sabes que el binario está en el camino? Etc, etc. –
no soy un aficionado a Haskell, pero this puede ser lo que usted está buscando
Funciona para mí. Gracias. –
@Clark Genial, me alegro de poder ayudarle –
Si haces este tipo de cosas, entonces vale la pena echarle un vistazo a http://hackage.haskell.org/package/HSH.
module Main where
import System.Process
main = callCommand "cp somefile somedestination"
funciona, pero es posible que prefiera otras funciones del módulo System.Process.
Creo que es runCommand (Obtuve' No en el alcance: \ 'callCommand'') – peer
http://stackoverflow.com/questions/9713448/haskell-execute-external-commands-in-strict-sequence – gliptak