Hay un yes
comando en unix / linux que básicamente se imprime infinitamente y
en el stdout
. ¿Cuál es el punto y cómo es útil?
Hay un yes
comando en unix / linux que básicamente se imprime infinitamente y
en el stdout
. ¿Cuál es el punto y cómo es útil?
Respuestas:
sí se puede usar para enviar una respuesta afirmativa (o negativa; por ejemplo, sí n) a cualquier comando que de otro modo solicitaría uno, lo que hace que el comando se ejecute de forma no interactiva.
El comando yes junto con el comando head se puede usar para generar archivos de gran volumen para realizar pruebas.
También se puede usar para probar qué tan bien un sistema maneja cargas altas, ya que el uso de sí da como resultado un uso del procesador del 100%, para sistemas con un solo procesador (para un sistema multiprocesador, se debe ejecutar un proceso para cada procesador). Esto, por ejemplo, puede ser útil para investigar si el sistema de enfriamiento de un sistema será efectivo cuando el procesador esté funcionando al 100%.
En 2006, el comando yes recibió publicidad por ser un medio para probar si el MacBook de un usuario está afectado o no por el Síndrome de apagado intermitente. Al ejecutar el comando yes dos veces a través de Terminal en Mac OS X, los usuarios pudieron maximizar la CPU de su computadora y, por lo tanto, ver si la falla estaba relacionada con el calor
a través de wikipedia: http://en.wikipedia.org/wiki/Yes_(Unix)
yes `yes yes`
Esta podría ser una opinión controvertida, pero en mi opinión , es una solución fea para la mala interfaz de usuario en las herramientas de línea de comandos .
Algunas herramientas de línea de comandos hacen preguntas al usuario con un aviso y no tienen una opción para ejecutar de forma no interactiva; imagina por ejemplo algo como
$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...
Dado que la respuesta a la pregunta se toma de la entrada estándar, una solución rápida a este problema es tener una aplicación que muestre la cadena y\n
continuamente, que es exactamente lo que yes
hace. Las tuberías Unix se pueden usar para enviar esta salida como entrada a un comando dado.
$ yes | frobnicate
Uno de los problemas con este enfoque es que yes
no tiene posibilidad de verificar la pregunta a la que responde:
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
format device /dev/sda1? (y/n) y
frobnicate file c.txt? (y/n) y
Una mejor solución, cuando está disponible, es una opción específica para ejecutar de forma no interactiva, como rm -f
o apt-get -y
. Esto permite codificar comportamientos más sensibles en la aplicación.
Acabo de encontrar otro uso para él: me gusta borrar un disco duro con un patrón diferente al de los ceros (como: dd if = / dev / zero of = / dev / sdd bs = 1M) y usé 'yes' para ello:
yes UUUUUUUUUUUUU > /dev/sdd
Un compañero de trabajo usó esto de una manera novedosa para ingresar una contraseña
yes password | passwd
passwd
pedirá primero la contraseña anterior, si el usuario no es root o superusuario y no continuará a menos que se ingrese la contraseña correcta. Por lo tanto, el usuario es root o también password
es la contraseña anterior y no se cambia nada.
ps
o top
en el momento adecuado).