A here string is a way to pass a short string as input to a command directly, using <<< followed by the string. It acts like a small input file.
Click to reveal answer
intermediate
How does a here string differ from a here document in bash?
A here string passes a single string as input, while a here document passes multiple lines or a block of text. Here strings use <<< and here documents use <<.
Click to reveal answer
beginner
Example: What does this command do? grep 'hello' <<< 'hello world'
It searches for the word 'hello' in the string 'hello world' passed as input via the here string. It will output 'hello world' because 'hello' is found.
Click to reveal answer
beginner
Can you use variables with here strings? Show an example.
Yes. For example: name='Alice' grep 'Alice' <<< "$name" This passes the value of the variable 'name' as input.
Click to reveal answer
intermediate
Why might you choose a here string over echo piping?
Here strings are simpler and faster for short input because they avoid creating a pipe. They are cleaner for passing small strings directly to commands.
Click to reveal answer
What symbol is used to create a here string in bash?
A>>
B<<
C<
D<<<
✗ Incorrect
The here string uses the symbol <<< to pass a string as input.
Which of these commands uses a here string correctly?
Acat <<< 'Hello World'
Bcat << 'Hello World'
Ccat < 'Hello World'
Dcat >> 'Hello World'
✗ Incorrect
cat <<< 'Hello World' uses a here string to pass 'Hello World' as input.
What will this command output? grep 'test' <<< 'this is a test'
Athis is a test
Btest
CNo output
DError
✗ Incorrect
The grep finds 'test' in the input string and outputs the whole line.
Can here strings handle multi-line input?
AYes, multiple lines
BOnly if quoted
CNo, only single line
DOnly with special flags
✗ Incorrect
Here strings pass a single string, usually one line. For multiple lines, use here documents.
Which is a benefit of using here strings?
ABetter for large files
BSimpler syntax for short input
CCreates temporary files
DRuns commands faster than normal
✗ Incorrect
Here strings provide a simple way to pass short input strings directly.
Explain what a here string (<<<) is and how it is used in bash scripting.
Think about how you give a command a quick input string without a file.
You got /4 concepts.
Describe a practical example where a here string is useful and why it might be preferred over echo piping.
Consider searching text or feeding a small string to a command.
You got /4 concepts.
Practice
(1/5)
1. What does the here string operator <<< do in bash scripting?
easy
A. Redirects output to a file
B. Starts a multiline comment
C. Sends a short string as input to a command
D. Creates a new shell process
Solution
Step 1: Understand the purpose of here strings
Here strings use <<< to send a short string directly as input to a command without needing a file.
Step 2: Compare with other redirections
Unlike output redirection or comments, here strings provide input data inline.
Final Answer:
Sends a short string as input to a command -> Option C
Quick Check:
Here strings = send input string [OK]
Hint: Here strings send input text directly to commands [OK]
Common Mistakes:
Confusing input with output redirection
Thinking it creates files
Mixing with multiline comments
2. Which of the following is the correct syntax to use a here string to send the text "hello world" to the cat command?
easy
A. cat <<<"hello world"
B. cat << hello
C. cat < hello
D. cat <<< hello world
Solution
Step 1: Identify correct here string syntax
The here string operator is <<< followed by a quoted string to preserve spaces or special characters.
Step 2: Check each option
cat <<< hello world misses quotes, which can cause word splitting. cat << hello uses here document syntax. cat < hello is input redirection from a file. cat <<<"hello world" correctly uses cat <<<"hello world".
Final Answer:
cat <<<"hello world" -> Option A
Quick Check:
Quotes needed with here strings = cat <<<"hello world" [OK]
Hint: Use <<< with quotes for strings containing spaces [OK]
Common Mistakes:
Omitting quotes causing errors
Using << instead of <<<
Confusing input redirection with here strings
3. What is the output of the following command?
grep 'world' <<< "hello world"
medium
A. "
B. world
C. hello
D. hello world
Solution
Step 1: Understand grep with here string input
The here string sends "hello world" as input to grep. Grep searches for lines containing 'world'.
Step 2: Determine grep output
The entire line "hello world" contains 'world', so grep outputs the full line.
Final Answer:
hello world -> Option D
Quick Check:
grep outputs matching lines = hello world [OK]
Hint: grep prints full matching lines from input [OK]
Common Mistakes:
Expecting only the matched word
Confusing grep output with cut or awk
Thinking here string changes grep behavior
4. Identify the error in this script snippet:
read name <<
medium
A. No error, script runs fine
B. read command cannot use here strings
C. Missing quotes around John in here string
D. Incorrect use of echo syntax
Solution
Step 1: Analyze the here string usage
The here string operator works with read and does not require quotes for simple alphanumeric strings like John.
Step 2: Check the given snippet
read name << correctly sets name=John (even with literal \n if present), and echo "Name is $name" outputs correctly. No syntax or runtime errors.
Final Answer:
No error, script runs fine -> Option A
Quick Check:
Here strings + read works without quotes for simple input [OK]
Hint: Here strings with read work without quotes for simple input [OK]
Common Mistakes:
Assuming read can't use here strings
Thinking quotes are always required
Misunderstanding echo syntax
5. You want to count how many times the word "error" appears in a log line stored in a variable line. Which command correctly uses a here string to do this?
hard
A. grep 'error' < $line | wc -l
B. grep -o 'error' <<< "$line" | wc -l
C. echo $line | grep -c 'error'
D. wc -l <<< "$line" | grep 'error'
Solution
Step 1: Understand the goal
We want to count occurrences of 'error' in the variable line.
Step 2: Analyze each option
grep -o 'error' <<< "$line" | wc -l uses here string to send $line to grep with -o (outputs each match on a new line), then counts lines with wc -l, correctly counting occurrences. grep 'error' < $line | wc -l tries to redirect input from a file named by $line, which is wrong. echo $line | grep -c 'error' echoes line and uses grep -c, which counts matching lines, not occurrences. wc -l <<< "$line" | grep 'error' pipes wc -l output to grep, which is incorrect usage.
Final Answer:
grep -o 'error' <<< "$line" | wc -l -> Option B
Quick Check:
Use grep -o with here string to count matches [OK]
Hint: Use grep -o with <<< and wc -l to count matches [OK]
Common Mistakes:
Using grep -c which counts lines, not matches
Redirecting input from variable as file
Misordering pipes causing wrong output
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.