< reads input from a file instead of the keyboard.
> writes output to a file, replacing its content.
>> appends output to the end of a file.
Examples
Reads and shows the content of names.txt using input redirection.
Bash Scripting
cat < names.txt
Writes "Hello World" into greeting.txt, replacing any existing content.
Bash Scripting
echo "Hello World" > greeting.txt
Adds "New entry" at the end of log.txt without deleting existing lines.
Bash Scripting
echo "New entry" >> log.txt
Sample Program
This script reads each line from names.txt and prints a greeting. Then it writes a status message to status.txt.
Bash Scripting
#!/bin/bash# Read names from a file and greet eachwhile IFS= read -r name; do
echo "Hello, $name!"
done < names.txt
# Save a message to a file
echo "Script finished successfully." > status.txt
OutputSuccess
Important Notes
Always check if the input file exists before reading to avoid errors.
Use >> to add data without deleting existing content.
File I/O lets scripts work with real data, making automation powerful.
Summary
File I/O lets scripts read and write data to files easily.
This is useful for automating tasks that involve files, like logs or reports.
Using input/output redirection is simple and powerful in bash scripting.
Practice
(1/5)
1. Why is file input/output (I/O) important in bash scripting?
easy
A. It makes scripts run faster by using less memory.
B. It allows scripts to read from and write to files, automating tasks.
C. It helps scripts connect to the internet automatically.
D. It prevents scripts from crashing on errors.
Solution
Step 1: Understand file I/O purpose
File I/O lets scripts handle data stored in files, such as logs or reports.
Step 2: Connect file I/O to automation
By reading and writing files, scripts can automate many tasks involving data processing.
Final Answer:
It allows scripts to read from and write to files, automating tasks. -> Option B
Quick Check:
File I/O = Automate file data handling [OK]
Hint: File I/O means reading/writing files in scripts [OK]
Common Mistakes:
Confusing file I/O with internet access
Thinking file I/O speeds up script execution
Assuming file I/O prevents all script errors
2. Which of the following is the correct way to redirect the output of a command to a file in bash?
easy
A. command |> output.txt
B. command >> output.txt <
C. command < output.txt
D. command > output.txt
Solution
Step 1: Identify output redirection syntax
In bash, using > after a command sends its output to a file, overwriting it.
Step 2: Check other options for correctness
> is correct; >> appends, < reads input, | pipes output, so only > fits the question.
Final Answer:
command > output.txt -> Option D
Quick Check:
Output redirection uses > [OK]
Hint: Use > to write output to a file, overwriting it [OK]
Common Mistakes:
Using < instead of > for output
Confusing >> (append) with > (overwrite)
Using invalid symbols like |>
3. What will be the content of the file output.txt after running this script?
The first echo writes "Hello" to output.txt, overwriting any existing content.
Step 2: Analyze second echo command
The second echo appends "World" to output.txt, adding it on a new line.
Final Answer:
Hello
World -> Option A
Quick Check:
First overwrite, then append with newline [OK]
Hint: > overwrites file, >> appends with newline [OK]
Common Mistakes:
Thinking >> overwrites instead of appends
Ignoring newline added by echo
Assuming output is just 'Hello' or 'World'
4. Identify the error in this script that tries to read from a file and print its content:
cat < input.txt
medium
A. The command should be 'cat >> input.txt' to append content.
B. The file name should be after the command without <, like 'cat > input.txt'.
C. The input redirection < is unnecessary; use 'cat input.txt' instead.
D. The script needs quotes around the file name.
Solution
Step 1: Understand cat command usage
cat reads and prints file content when given the filename as an argument.
Step 2: Check input redirection usage
Using < input.txt is valid but redundant here; 'cat input.txt' is simpler and standard.
Final Answer:
The input redirection < is unnecessary; use 'cat input.txt' instead. -> Option C
Quick Check:
cat filename is simpler than cat < filename [OK]
Hint: Use 'cat filename' to read files, not input redirection [OK]
Common Mistakes:
Confusing input redirection with output redirection
Using > or >> instead of < for input
Adding unnecessary quotes around filename
5. You want to create a script that reads a list of usernames from users.txt and writes a greeting for each user into greetings.txt. Which script snippet correctly does this?
hard
A. while read user; do echo "Hello, $user!" >> greetings.txt; done < users.txt
B. for user in users.txt; do echo "Hello, $user!" > greetings.txt; done
C. cat users.txt | echo "Hello, $user!" > greetings.txt
D. echo "Hello, $(cat users.txt)!" > greetings.txt
Solution
Step 1: Understand reading lines from a file
The 'while read user; do ... done < users.txt' reads each line (username) from users.txt correctly.
Step 2: Check writing greetings
Inside the loop, echo appends a greeting line to greetings.txt for each user.
Final Answer:
while read user; do echo "Hello, $user!" >> greetings.txt; done < users.txt -> Option A
Quick Check:
Loop reads lines and appends greetings [OK]
Hint: Use while read loop with input redirection and append >> [OK]
Common Mistakes:
Using for loop incorrectly on filename instead of lines
Overwriting greetings.txt inside loop instead of appending
Misusing cat with echo without looping
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.