stringtranslate.com

Sí (Unix)

yeses un comando en sistemas operativos Unix y similares a Unix que genera una respuesta afirmativa o una cadena de texto definida por el usuario de forma continua hasta que se elimina.

Descripción general

Por sí solo, el yescomando genera 'y' o lo que se especifique como argumento, seguido de una nueva línea repetidamente hasta que el usuario lo detenga o lo elimine de otra manera ; cuando se lo incluye en un comando, continuará hasta que se rompa la línea de entrada (es decir, hasta que el programa complete su ejecución). Sin embargo, si el usuario ingresa una cadena después de 'yes', 'yes' generará la cadena de la misma manera que generaría 'y', similar a echo .

La versión yesincluida en GNU coreutils fue escrita por David MacKenzie. [1]

El comando está disponible como un paquete separado para Microsoft Windows como parte del proyecto GnuWin32 [2] y la colección UnxUtils de puertos Win32 nativos de utilidades comunes tipo Unix de GNU . [3]

Usos

yesse puede utilizar para enviar una yes nrespuesta afirmativa (o negativa; p. ej.) a cualquier comando que de otro modo la solicitaría, provocando así que el comando se ejecute de forma no interactiva.

Si se escribe "sí" en un comando con muchas solicitudes de confirmación del usuario, se responderá automáticamente a todas esas solicitudes con "sí" (escribir "y" y presionar Enter).

Los siguientes comandos

$  | sudo apt install foobar     

responderá las solicitudes de confirmación con y, instalando efectivamente foobar con sudo apt sin ninguna solicitud.

Este uso puede estar obsoleto hoy en día, ya que la mayoría de los comandos que solicitarían una respuesta del usuario tienen una opción "forzar" (por ejemplo, rm -f) o una opción "asumir que sí" (por ejemplo, apt -y).

A modo de ejemplo, lo siguiente:

$  rm  -f  *.txt

es funcionalmente equivalente a

$  | rm *.txt   

El yescomando junto con el comando head se puede utilizar para generar archivos de gran volumen para fines de prueba. Por ejemplo, ejecutar

$  1234567 | head -n1000 > archivo      

da como resultado un archivo que consta de 1000 líneas, cada una de las cuales consta de ocho caracteres (1, 2, 3, 4, 5, 6, 7 y nueva línea).

yespuede utilizarse como una forma sencilla de generar carga de CPU. En 2006, por ejemplo, el yescomando recibió publicidad por ser un medio para probar si el MacBook de un usuario se ve afectado o no por el error "Síndrome de Apagado Intermitente", en el que un MacBook se apaga aleatoriamente sin ninguna intervención del usuario. Al ejecutar el yescomando indefinidamente dos veces a través de la Terminal en Mac OS X , los usuarios pudieron maximizar la CPU de su computadora y así ver si la falla estaba relacionada con el calor. [4] [5]

Implementación y desempeño

La implementación de yesen diferentes Unix y sistemas similares a Unix se implementó consistentemente con un simple bucle while. La implementación de en el Proyecto GNU yesfue mucho más rápida que cualquier otra implementación, lograda mediante el almacenamiento en búfer de su salida, lo que llevó a una mayor salida por llamada al sistema. [6] [7] La ​​implementación de GNU puede haber sido diferente para evitar infringir los derechos de autor de Unix. El Proyecto FreeBSD cambió su implementación en 2017 para que coincida con la implementación de GNU. [8]

Referencias

  1. ^ yes(1)  –  Manual de comandos de usuario de Linux
  2. ^ CoreUtils para Windows
  3. ^ Puertos Win32 nativos de algunas utilidades GNU
  4. ^ "Prueba para detectar el síndrome de apagado aleatorio (RSS) de MacBook". ZDNet . 2006-08-29. Archivado desde el original el 5 de junio de 2010 . Consultado el 2012-05-09 .
  5. ^ "Prueba de apagados aleatorios de tu MacBook". Archivos de Apple . 2006-08-02. Archivado desde el original el 2007-02-10 . Consultado el 2008-01-16 .
  6. ^ Endler, Matthias (10 de octubre de 2017). "Una pequeña historia sobre el comando Unix 'yes'". Endler.dev . Archivado desde el original el 25 de enero de 2022.
  7. ^ kjensenxz (13 de junio de 2017). "r/unix: ¿cómo es que GNU 'yes' es tan rápido?". Reddit . Archivado desde el original el 30 de octubre de 2021.
  8. ^ gahr (13 de junio de 2017). "Mejorar el rendimiento de yes" (commit) . github .

Lectura adicional

Enlaces externos