Bash 입출력 처리

Bash (Bourne Again SHell) is a popular and powerful command-line interpreter for Linux. It provides a wide range of features and functionalities to handle input and output in Linux systems. In this blog post, we will explore various techniques and commands to effectively handle input and output in Bash.

Standard Input (stdin)

Standard input, often abbreviated as stdin, refers to the default input source for a Bash command or script. By default, stdin reads input from the keyboard. However, it can also read input from files or be redirected to accept input from other commands.

Reading from Keyboard

To read input from the keyboard in Bash, you can use the read command. This command prompts the user for input and stores it in a variable.

# Example: Reading input from the keyboard
echo "Enter your name: "
read name
echo "Hello, $name!"

In the above example, the read name command waits for the user to enter their name and stores it in the name variable. The entered name is then printed using the echo command.

Reading from Files

Bash allows you to read input from files using input redirection. The < symbol is used to redirect the contents of a file as input to a command.

# Example: Reading input from a file
while read line
do
    echo $line
done < input.txt

In the above example, the input.txt file is used as the input source for the read line command. Each line from the file is printed using the echo command.

Standard Output (stdout)

Standard output, also known as stdout, refers to the default output destination for a Bash command or script. By default, stdout prints output to the terminal. However, it can be redirected to files or piped to other commands.

Writing to Terminal

To print output to the terminal in Bash, you can use the echo command. This command outputs its arguments to the stdout.

# Example: Writing output to the terminal
echo "Hello, World!"

In the above example, the echo command prints the message “Hello, World!” to the terminal.

Writing to Files

Bash allows you to redirect output to files using output redirection. The > symbol is used to redirect the output of a command to a file. If the file already exists, it will be overwritten. If you want to append the output to an existing file, you can use the >> symbol.

# Example: Writing output to a file
echo "Hello, World!" > output.txt

In the above example, the echo command writes the message “Hello, World!” to the output.txt file.

Standard Error (stderr)

Standard error, often referred to as stderr, is used to output error messages or diagnostics of a command or script. It is separate from stdout and can be redirected independently.

Redirecting stderr

To redirect stderr in Bash, you can use the 2> symbol. This redirects the error messages to a file or to another stream.

# Example: Redirecting stderr to a file
command_not_found 2> error.txt

In the above example, the command_not_found command results in an error message. The 2> symbol redirects the error message to the error.txt file.

Conclusion

Handling input and output in Bash is essential for effective Linux system administration and scripting. The ability to read input from various sources and redirect output to files or other commands provides great flexibility. By understanding these concepts and mastering the related commands, you can efficiently process input and output in your Bash scripts.