Вы можете не допустить расширения оболочки $something
в данном документе, экранируя символ $
с помощью обратной косой черты sh:
gnuplot <<-EOFMarker
[...]
plot '${outdir}/counts.txt' using 1:(a=max(a,\$2),0/0) notitle, \
'' using 1:(100*\$2/a) notitle with linespoints linestyle 1
EOFMarker
Обратите внимание, что ${outdir}
не экранируется, поэтому оболочка будет go впереди и заменяет ее как обычно. Кстати, вам также понадобится экранировать символы обратной косой черты или backsla sh (escape), которые вы хотите передать программе, без интерпретации.
Кстати, здесь это не применимо, но вы можете включить отключите все подстановки в данном документе, заключив в кавычки разделитель:
gnuplot <<-'EOFMarker'
$things `that` $won't \be $expanded
EOFMarker
Причина, по которой это не сработает, заключается в том, что он не позволит оболочке расширяться ${outdir}
как хорошо, и я предполагаю, что это не то, что вы хотите.