2010-01-19 11 views
26

¿Existe una manera simple de determinar mediante programación si un script R se está ejecutando en Windows contra Linux?R: determine si un script se está ejecutando en Windows o Linux

+0

sí! Lo sé – Dan

+0

Llego un poco tarde a esta fiesta pero considere esta Búsqueda de códigos de Google: http://www.google.com/codesearch?as_q=linux+windows&btnG=Search+Code&hl=es&as_lang=r - es decir, especifique ' as_lang = r 'para obtener soluciones basadas en R solo cuando se buscan cadenas' linux 'y' windows '. Y está justo allí .... –

+0

¡fantástico! No sabía acerca de la búsqueda del código de GOOG. Luché y luché para buscar esto pero seguí obteniendo resultados no relacionados. –

Respuesta

28
if(.Platform$OS.type == "unix") { 
} else { 

} 
+0

No debería haber perdido ese tiempo con el primer comentario. Golpeado al golpe de nuevo. – Dan

+1

Si hubiera sido un comentario útil, sería comprensivo ... ¡Pero ese fue realmente un tiempo perdido! :) –

+0

Gracias! No podía recordar esto para salvar mi vida. –

6
.Platform$OS.type 

vuelve

[1] "unix" 

o algo más.

+0

Vea también R.version() para otras cosas del tipo de sistema operativo. – Spacedman

+0

hmm .. R.version() no funciona ... tal vez Sys.info()? –

+0

ahh .. capitalización. Es R.Version() –

10
Sys.info()["sysname"] 
2

corro el mismo código de cualquiera de tres máquinas Linux o Windows. Yo uso el siguiente para configurar los directorios de trabajo:

if(R.Version()$os == "linux-gnu" { 
    dir.pre <- "/home" 
} else { 
    dir.pre <- "C:/Users" 
} 

En mi servidor Debian Linux y mi laptop Ubuntu:

> .Platform$OS.type 
[1] "unix" 
> R.Version()$os 
[1] "linux-gnu" 

en mi Windows 10 portátil, en rstudio:

> .Platform$OS.type 
[1] "windows" 
> R.Version()$os 
[1] "mingw32" 

Siéntase libre de editar y agregar a esta lista.

Cuestiones relacionadas