Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Writing to files (echo, printf) in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to write the text 'Hello World' into a file named output.txt using echo.

Bash Scripting
echo "Hello World" [1] output.txt
Drag options to blanks, or click blank then click option'
A>>
B>
C<
D|
Attempts:
3 left
💡 Hint
Common Mistakes
Using >> appends instead of overwriting.
Using < which is for input redirection.
Using | which pipes output to another command.
2fill in blank
medium

Complete the code to append the text 'New Line' to the file log.txt using echo.

Bash Scripting
echo "New Line" [1] log.txt
Drag options to blanks, or click blank then click option'
A>>
B>
C<
D|
Attempts:
3 left
💡 Hint
Common Mistakes
Using > which overwrites the file.
Using < which is for input redirection.
Using | which pipes output to another command.
3fill in blank
hard

Fix the error in the code to write formatted text with printf into file.txt.

Bash Scripting
printf "Name: %s\n" [1] > file.txt
Drag options to blanks, or click blank then click option'
AJohn
B'John'
C"John"
DName
Attempts:
3 left
💡 Hint
Common Mistakes
Not quoting the string, causing errors or unexpected output.
Using single quotes which may not expand variables if used.
Passing a bare word that is not defined.
4fill in blank
hard

Fill both blanks to create a file with numbers 1 to 5, each on a new line, using printf and a loop.

Bash Scripting
for i in {1..5}; do printf "[1]\n" [2]; done > numbers.txt
Drag options to blanks, or click blank then click option'
A%d
Bi
C$i
D%s
Attempts:
3 left
💡 Hint
Common Mistakes
Using i without $ which is treated as a string.
Using %s which is for strings, not numbers.
Not redirecting output to the file.
5fill in blank
hard

Fill all three blanks to create a file with squares of numbers 1 to 3 using printf and arithmetic expansion.

Bash Scripting
for n in {1..3}; do printf "[1]: [2]\n" [3] $((n*n)); done > squares.txt
Drag options to blanks, or click blank then click option'
ANumber
BSquare
Cn
Attempts:
3 left
💡 Hint
Common Mistakes
Using the same label twice.
Using incorrect variable names.
Not using arithmetic expansion correctly.

Practice

(1/5)
1. Which command in bash writes the text Hello World to a file named greeting.txt and adds a newline automatically?
easy
A. echo "Hello World" > greeting.txt
B. printf "Hello World" > greeting.txt
C. echo -n "Hello World" > greeting.txt
D. printf "Hello World\n" > greeting.txt

Solution

  1. Step 1: Understand echo behavior

    The echo command prints text and adds a newline by default.
  2. Step 2: Compare with printf

    printf requires explicit newline characters to add a newline.
  3. Final Answer:

    echo "Hello World" > greeting.txt -> Option A
  4. Quick Check:

    echo adds newline automatically = A [OK]
Hint: Use echo for quick writes with newline [OK]
Common Mistakes:
  • Using printf without \n misses newline
  • Using echo -n suppresses newline
  • Confusing > and >> operators
2. Which of the following is the correct syntax to append the line Log entry to a file log.txt using printf?
easy
A. printf "Log entry" >> log.txt
B. printf -n "Log entry" >> log.txt
C. printf "Log entry\n" >> log.txt
D. printf -e "Log entry" >> log.txt

Solution

  1. Step 1: Understand printf newline requirement

    printf does not add newline automatically; you must include \n explicitly.
  2. Step 2: Check append operator

    >> appends to the file without overwriting.
  3. Final Answer:

    printf "Log entry\n" >> log.txt -> Option C
  4. Quick Check:

    printf needs \n for newline + append with >> = C [OK]
Hint: Always add \n with printf to get a new line [OK]
Common Mistakes:
  • Forgetting \n causes no newline
  • Using > instead of >> overwrites file
  • Using invalid printf flags like -n or -e
3. What will be the content of file.txt after running this script?
echo "Line1" > file.txt
printf "Line2\n" >> file.txt
echo -n "Line3" >> file.txt
medium
A. Line1\nLine2Line3
B. Line1\nLine2\nLine3\n
C. Line1Line2Line3
D. Line1\nLine2\nLine3

Solution

  1. Step 1: Analyze echo "Line1" > file.txt

    This writes "Line1" plus newline to file.txt, overwriting existing content.
  2. Step 2: Analyze printf "Line2\n" >> file.txt

    This appends "Line2" plus newline to file.txt.
  3. Step 3: Analyze echo -n "Line3" >> file.txt

    This appends "Line3" without newline to file.txt.
  4. Final Answer:

    Line1\nLine2\nLine3 -> Option D
  5. Quick Check:

    echo adds newline, printf adds newline, echo -n no newline = D [OK]
Hint: Remember echo -n skips newline, printf needs explicit \n [OK]
Common Mistakes:
  • Assuming echo -n adds newline
  • Forgetting printf needs \n
  • Confusing overwrite (>) and append (>>)
4. The following script is intended to write two lines to output.txt but only writes one line. What is the error?
echo "First line" > output.txt
printf "Second line" > output.txt
medium
A. printf needs \n to add newline
B. Second command overwrites the file instead of appending
C. echo should use >> to append
D. Missing quotes around Second line

Solution

  1. Step 1: Check file redirection operators

    The first command uses > which creates or overwrites output.txt with "First line".
  2. Step 2: Check second command redirection

    The second command also uses > which overwrites output.txt, replacing previous content.
  3. Step 3: Correct approach

    To keep both lines, second command should use >> to append instead of overwrite.
  4. Final Answer:

    Second command overwrites the file instead of appending -> Option B
  5. Quick Check:

    Using > twice overwrites file = D [OK]
Hint: Use >> to append, > overwrites file [OK]
Common Mistakes:
  • Thinking \n missing causes no second line
  • Confusing > and >> operators
  • Assuming echo always appends
5. You want to create a file report.txt with exactly two lines:
"Summary:"
"All tests passed"
Which script snippet correctly creates this file with proper newlines and no extra blank lines?
hard
A. printf "Summary:\nAll tests passed\n" > report.txt
B. echo "Summary:" > report.txt && echo "All tests passed" > report.txt
C. echo -n "Summary:\nAll tests passed" > report.txt
D. printf "Summary:" > report.txt && printf "All tests passed" >> report.txt

Solution

  1. Step 1: Check echo commands in echo "Summary:" > report.txt && echo "All tests passed" > report.txt

    echo "Summary:" > report.txt && echo "All tests passed" > report.txt uses echo twice with > redirection, so the second command overwrites the first line.
  2. Step 2: Check printf commands in printf "Summary:\nAll tests passed\n" > report.txt

    printf "Summary:\nAll tests passed\n" > report.txt uses printf with explicit \n for newlines, creating exactly two lines with no extra blank lines.
  3. Step 3: Analyze Options C and D

    echo -n "Summary:\nAll tests passed" > report.txt uses echo -n which suppresses newlines and includes literal \n, so no actual new lines appear. printf "Summary:" > report.txt && printf "All tests passed" >> report.txt uses printf without \n, so lines run together.
  4. Final Answer:

    printf "Summary:\nAll tests passed\n" > report.txt -> Option A
  5. Quick Check:

    printf with explicit \n creates exact lines = B [OK]
Hint: Use printf with \n for precise multi-line output [OK]
Common Mistakes:
  • Using echo -n with \n prints literal \n
  • Forgetting \n in printf causes no new lines
  • Using > and >> inconsistently
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard