Interview › Scripting (Bash, Groovy)
What is a here-document, and when would you use one? [Intermediate]
Answer
A here-document feeds a block of text to a command's stdin. I use it for generating config files, sending multi-line SQL, templating small files, or passing scripts to remote commands.
Technical explanation
With <<EOF, variables inside the heredoc are expanded by the shell.
With <<'EOF', the content is literal and variables are not expanded, which is safer for templates containing dollar signs.
Use <<-EOF to allow leading tab indentation to be stripped, but spaces are not stripped.
Hands-on example
cat > app.conf <<EOF
app_name=orders
port=8080
env=${ENVIRONMENT:-dev}
EOF
psql "$DATABASE_URL" <<'SQL'
select now();
select count(*) from users;
SQL
Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.
More Scripting (Bash, Groovy) interview questions
- What is the purpose of the shebang line, and what does #!/bin/bash do? [Basic]
- What is the difference between sh and bash? [Basic]
- How do you make a script executable and run it? [Basic]
- What is the difference between running a script with ./script.sh, bash script.sh, and source script.sh? [Basic]
- What does sourcing a script do differently from executing it? [Basic]
- How do you declare a variable in Bash, and why are spaces around = not allowed? [Basic]
- What is the difference between $var and ${var}? [Basic]
- What is the difference between single quotes and double quotes in Bash? [Basic]