Escriba un programa que analice la salida uptime
y genere una barra de progreso anatómicamente sugerente (como se muestra) con una duración igual al tiempo de actividad actual en días:
$ uptime
23:01 up 34 days, 7:30, 5 users, load averages: 0.23 0.27 0.24
$ uptime|<command>
8==================================D
(34 días = 34 signos iguales)
La respuesta más corta gana.
Respuestas:
Ruby, 39
No se requiere entrada (excluyendo):
O de stdin (40 caracteres):
fuente
gets=~/up (\d*)/;puts "8#{?=*$1.to_i}D"
'gets=~/up (\d*)/;puts "8#{"="*$1.to_i}D"'.length=="gets=~/up (\d*)/;puts '8'+'='*$1.to_i+'D'".length
# verdaderoBash, 71 caracteres
No estoy mucho en la exposición de mis
generacióntiempos de actividad en Internet, por lo que estoy dibujando una cerca de su lugar. Es el mismo recuento de personajes. Piense en restablecerp
entre llamadas.Pure bash, 71 caracteres incluidos
uptime
.Bueno, bueno, bueno ... el mío es más grande que el tuyo.
fuente
Perl -
2624 caracteresCorrió así:
editar : Sin comillas la 'D' final - gracias JB
fuente
Haskell, 88 personajes
Como suele ser el caso, Haskell no ofrece la capacidad de juego más extrema de algunos otros idiomas, pero permite una expresión elegante de las estructuras matemáticas subyacentes al problema. Sobre la base de su trabajo seminal en este campo, mi objetivo es presentar una implementación de Haskell del operador de aproximación Holkins-Krahulik . Brevemente, el operador ignora ambas entradas y devuelve una función de impresión falo parametrizada por la longitud del eje.
fuente
Perl, 17 caracteres
Ahora con decir:
Rendimientos
fue:
Rendimientos
(No puedo "decir", tristemente)
fuente
57 caracteres
fuente
35 caracteres
entonces,
Editar : fue
Edición 2 : comentario de JB (usar en
\
lugar de''
)fuente
Windows PowerShell, 28
Al menos
produce la salida correcta, por lo que debería poder manejar
uptime
la salida. Sin embargo, no puedo probarlo, ya que GNUWin32 incluye un archivo rotouptime
que intenta leer desde un archivo no existente (Nota para las personas que portan herramientas Unix: no intentes asumir que Windows es Unix y se adhiere a los mismos principios o convenciones; hay no es un archivo que contenga el tiempo de arranque en Windows).fuente
Lisp común, 84 caracteres
Esto toma la cadena de tiempo de actividad como entrada. Parece que debería haber un mapeo de solución más corto # 'escribir sobre una lista, pero si es así, no puedo encontrarlo.
fuente
GolfScript (24 caracteres)
Haskell (73 caracteres)
C (131 caracteres)
fuente
' '/3=~8\'='*'D'
PHP, 62 caracteres
No se requiere entrada, se despliega.
fuente
Pitón (42)
Nota: Python 3 se usa para reducir el recuento total de caracteres.
fuente
Python, 65 bytes
prueba:
fuente
PHP, 61
fuente
Lisp común, 57 caracteres
(excluyendo implementación / shebang específico del sistema operativo)
Basado en un intento de satisfacer la respuesta del Dr. Pain deseo de una forma más corta de escribir un personaje repetido. Este se puede usar en una tubería como se muestra en la pregunta.
(La cadena de formato especifica que se justifique a la derecha la cadena vacía (entre
~<
y~>
), en un campo de ancho especificado por un argumento, rellenado con el=
carácter).fuente
K, 35
.
fuente
Bash 67 caracteres
invocación a la carta de la asignación:
Mucho más corto
solo 54 caracteres:
con esta variación:
invocación, no 100% de acuerdo con las reglas:
salida en ambos tiempos:
Trucos no cotidianos:
lee 06: 29: 53 = t, arriba = u, 16 = d descanso ... = w
sin w, todo hasta el final se pondría en $ d.
expand se usa normalmente para traducir una pestaña en una cantidad de espacios en blanco y toma un parámetro si no le gusta 8.
Agarrar el tercer parámetro con $ 3
echo -e '\t'|expand -t $3|sed 's/ /=/g'
es aún más corto, pero necesita una invocación, que no se ajusta a las palabras de las reglas.fuente
bash / zenity 38 versión corta, 68 versión más larga
La versión corta termina después de $ d, cuanto más tiempo tenga en cuenta que conocemos un valor máximo y nos gustaría tener texto útil:
fuente
Gema , 24 personajes
Ejecución de muestra:
fuente
AutoHotkey , 39 bytes
Sin entrada. El resultado se envía a la ventana activa.
El valor incorporado
A_TickCount
es el número de milisegundos desde que se reinició la computadora.fuente