From 8ef0dc0dcc2bcc3ae5dfdf1deb284a87af669ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Gonz=C3=A1lez?= Date: Wed, 13 Apr 2022 21:47:22 +0200 Subject: [PATCH] Make explanation on how to fix this check on sh clearer, add example of heredoc --- SC2031.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/SC2031.md b/SC2031.md index 50c28cf..218bfe7 100644 --- a/SC2031.md +++ b/SC2031.md @@ -18,7 +18,15 @@ n=0 while read i; do (( n+=i )); done < <(printf "%s\n" {1..10}) echo $n ``` -In `sh`, a temp file (better if fifo or fd) can be used instead of process substitution. And if it's acceptable to do it with waiting, try Here Documents. +In `sh`, temporary files, FIFOs or file descriptors can be used instead. When the output of the command can be stored to a variable before entering the loop, here documents are a preferable alternative: +```sh +n=0 +SUMMANDS="$(printf '%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n' 1 2 3 4 5 6 7 8 9 10)" +while read i; do n=$(( n + i )); done <