Syntax
[cmd] <<[-] delimeter [cmd] contents delimeter
All contents
will be passed to the cmd as an input, examples below will use EOF
as a delimeter and cat
as a command, you can change to whatever you want.
With Variable
cat <<EOF echo "$HOME" EOF
result:
echo "/home/clavinjune"
Escape Variable
Use \$
instead of $
to escape specific variable
cat <<EOF echo "$HOME" echo "\$HOME" EOF
result:
echo "/home/clavinjune" echo "$HOME"
Escape All Variables
Use 'EOF'
instead of EOF
to escape all variables
cat <<'EOF' echo "$HOME" echo "\$HOME" EOF
result:
echo "$HOME" echo "\$HOME"
Remove Leading Tab
Use <<-
instead of <<
to remove leading tabs
cat <<-EOF echo "$HOME" echo "\$HOME" EOF
result:
echo "/home/clavinjune" echo "$HOME"
Add More Pipeline
cat <<EOF | grep june echo "$HOME" echo "\$HOME" EOF
result:
echo "/home/clavinjune"
Write To a File
cat <<-'EOF' > /tmp/foo echo "$HOME" echo "\$HOME" EOF
result:
$ cat /tmp/foo echo "$HOME" echo "\$HOME"
Thank you for reading!
Top comments (1)
so nice, thanks for sharing. expect to update~