Examples
Evaluates variables
cat << EOF > file.sh
echo "I am $(whoami)"
EOF
Does not evaluate variables
cat << 'EOF' > file.sh
echo "I am $(whoami)"
EOF
cat << EOF > file.sh
echo "I am $(whoami)"
EOF
cat << 'EOF' > file.sh
echo "I am $(whoami)"
EOF