From ce059fee0df97efcfb30b173ee6d8aa7a8d43ecd Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Mon, 21 Mar 2022 22:17:07 +0300 Subject: add an include for shell commands & output --- _posts/2022-03-21-shell.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 _posts/2022-03-21-shell.md (limited to '_posts') diff --git a/_posts/2022-03-21-shell.md b/_posts/2022-03-21-shell.md new file mode 100644 index 0000000..1f8f56a --- /dev/null +++ b/_posts/2022-03-21-shell.md @@ -0,0 +1,52 @@ +--- +title: Shell commands +excerpt: > + Pretty formatting for shell commands and their outputs. +--- +It's easy to style shell commands and their outputs. +Here's a one-line command and a one-line output. + +{% include shell.html cmd='echo 1' out='1' %} + +You can pass multiple commands and multi-line output to the include as well: + +{% include shell.html cmd='echo 1 +echo 2' out='1 +2' %} + +However, it is recommended that you `capture` multi-line commands and outputs +into variables and pass them. +This is mostly because Liquid doesn't like backslashes too much. + +{% capture cmd1 %} +touch test.txt && \ + echo 123 >> test.txt && \ + echo 456 >> test.txt && \ + cat test.txt +{% endcapture %} +{% capture out1 %} +123 +456 +{% endcapture %} + +{% include shell.html cmd=cmd1 out=out1 %} + +You can display multiple commands one after another. + +{% include shell.html cmd="printf 'Hello\n'" out='Hello' %} +{% include shell.html cmd="printf 'World\n'" out='World' %} + +Only the last one will have a bottom margin. + +Also, here's a really long command with a really long output: + +{% capture cmd1 %} +printf '%s\n' 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +{% endcapture %} +{% capture out1 %} +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +{% endcapture %} + +{% include shell.html cmd=cmd1 out=out1 %} + +This is ugly though, so please don't do that. -- cgit v1.2.3