How to Use the Command 'yes' (with Examples)
The yes
command is a simple yet powerful utility available in Unix-like operating systems, and its primary purpose is to repeatedly output a string or character until it is stopped. This can be surprisingly useful for automating interactions with specific shell commands that require user input or confirmation. While often used to automatically respond to prompts during package installations, its usage spans a variety of functions, as illustrated in the examples below.
Use Case 1: Repeatedly Output “message”
Code:
yes message
Motivation:
Imagine you need to generate a file with numerous repeated lines containing a particular message. Perhaps it’s for testing purposes, filling space, or simulating input to a program. By using yes message
, you can quickly create an abundant stream of this custom message, redirecting it into a file or another process as needed.
Explanation:
yes
: This initiates theyes
command, which will continually output whatever follows it.message
: Here, “message” represents any string you wish to repeat continuously. It could be words, numbers, or any combination of characters you need.
Example Output:
The output will be an endless series of lines containing “message”:
message
message
message
message
...
Use Case 2: Repeatedly Output “y”
Code:
yes
Motivation:
A common use case for the yes
command is to automate the input of “y” (for “yes”) into prompts that would typically require user interaction, particularly during installations or script executions where every option defaults to “yes”. This saves time and effort in processes that must run unattended or without constant manual approval.
Explanation:
yes
: By usingyes
without any arguments, it defaults to outputting “y” continuously. This is especially handy for responding affirmatively to all yes/no prompts in a process.
Example Output:
The output will be a continuous stream of the letter “y”:
y
y
y
y
...
Use Case 3: Accept Everything Prompted by the apt-get
Command
Code:
yes | sudo apt-get install program
Motivation:
When installing software using package managers like apt-get
, a user may encounter numerous prompts asking for confirmation to proceed with the installation, especially with large software packages involving multiple dependencies. By piping the output of yes
into apt-get
, you automate this confirmation process, ensuring a smooth, hands-free installation experience.
Explanation:
yes
: Continuously generates “y”, simulating a stream of affirmative responses.|
: This pipe symbol directs the output of theyes
command as input to the subsequent command,sudo apt-get install program
.sudo
: Grants the permissions necessary to install packages, which typically require administrative rights.apt-get install program
: Initiates the installation of the specified program, where “program” would be replaced with your actual software name.
Example Output:
This use case doesn’t have a simple direct output to display, but functionally, every confirmation prompt during the installation process is automatically answered with “y”, mimicking user approval and allowing the process to continue seamlessly.
Use Case 4: Repeatedly Output a Newline to Always Accept the Default Option of a Prompt
Code:
yes ''
Motivation:
Sometimes, rather than needing to explicitly say “yes”, an application or command might just require the user to press “Enter” to accept default values in prompts. By using yes ''
, you send a continuous stream of newline inputs, effectively simulating pressing “Enter” each time a prompt appears.
Explanation:
yes
: Begins the command that sends repeated inputs.''
: An empty string that is interpreted as a newline. This simulates pressing “Enter”, giving commands the default response they’re designed to execute.
Example Output:
Since this sends newlines to prompts, there won’t be visible output like a repeated text or character string; instead, it’s effective in processes requiring default, silent acceptances.
Conclusion:
The yes
command, with its ability to repeatedly output strings or simulate user inputs, is a versatile tool in scripting and automating tasks that require consistent responses to prompts. Through examples like generating repeated messages, automating confirmations, and accepting defaults, yes
can significantly enhance efficiency in various command-line scenarios.